input标签获取焦点是文本框内提示信息清空

看到朋友逍遥老鬼说到了这个地方,就顺带着写了一段给他。

作用是,一个文本框,需要输入内容,在没有输入的时候里面有一段提示内容,当点击这个文本框输入的时候,文本框内的内容自动消失。

function addLoadEvent(func){
	var oldonload = window.onload;
	if (typeof window.onload != 'function'){
		window.onload = func;
	}else{
		window.onload = function(){
			oladonload();
			func();
		}
	}
}
 
function checkText(){
	var textId = document.getElementById('test');
	var textDefault = '请输入字符';
	function cls(){
		if (this.value == textDefault){
			this.value = '';
		}
	}
	function res(){
		if (this.value == ''){
			this.value = textDefault;
		}
	}
	textId.onfocus = cls;
	textId.onblur = res;
}
addLoadEvent (checkText);
<input type="text" value="请输入字符" id="test" />

原文链接| 评论 (2)

网站架构策划方案

这段时间一直都在为网站架构的事情所烦恼,前端,程序,服务器三个方面应该如何协调才能达到一个较为优化的网站架构呢?根据前辈的经验,我总结了以下文档,特分享。

1.    UIC需要做的
         采用Css Sprite将背景图片,图标图片集成在一张图片内。
         优点:减少用户代理对服务器的请求次数;加快用户载入页面时间。

         Css && Js 统一使用YUIcompressor进行代码压缩处理。
         优点:加快服务器结束线程的时间;加快用户载入页面时间。

         单个数据对象小于25K。
         优点:部分用户代理(如iphone),无法载入25K以上的数据对象。

         外部广告图片,宣传图片尽量防止在本站图片缓存服务器上。
         优点:减少用户的DNS查询,加快页面载入速度。

         色彩不超过256色的图片,不采用JPG格式存储。
         优点:减少文件大小,加快页面载入速度。

         使用PNG8格式的PNG图片代替Gif格式图片。
         优点:具备比Gif更高的压缩比,有利于网络传塑,加快页面载入速度。

         JPG图片采用interlaced模式存储。
         优点:色彩复杂的图片大小更小,可让图片呈渐进状态显示,直至清晰。增强用户体验。

2.    UI 需要做的
         设计稿图片尽量减少一些渐变效果的使用
         优点:减少JPG图片的数量,加快用户载入页面时间。

3.    开发需要做的
         如果出现Ajax 方式,采用Ajax缓存 
         可考虑

4.    SA 需要做的
         负载均衡
         优点:减小Web服务器压力。

         Gzip压缩输出
         优点:减小输出的用户数据大小,加快页面载入时间。

         图片与Web服务器分离
         优点:减小Web服务器压力。

         增加Squid缓存
         优点:避免2次刷新带来的重复请求。减少服务器压力。

         架构SVN测试服务器并与公网服务器的同步
         优点:避免公网页面出现错误,增强用户体验。

原文链接| 暂无评论

牛刀小试YUI compressor

这几天正在为压缩代码的事情所困扰,大家也可以看见,我的博客顶端有两个在线的压缩工具,但在实际应用过程中,除了CSS的压缩比较满意外,JS的压缩,很是不爽,如果语法有问题的话(比如缺少”;”),就会出现无法预知的错误。

不过让人欣慰的是,Yahoo!给我们带来了YUI  compressor!,呵呵,废话少说,赶紧体验。

YUI compressor的下载地址是:http://developer.yahoo.com/yui/compressor/

淘宝做了一个可视化的版本,叫做TBCompressor,可以到这里下载:http://lifesinger.org/blog/?p=464
谢谢岁月老大!

如果你没有安装JAVA环境的话,还需要安装一下JDK

下载地址是:http://java.sun.com/javase/downloads/index.jsp 我们选择(Java SE Development Kit (JDK) 6 Update 11)这个下载。

下载,安装,一路Next,没有任何问题,对了,你可以修改一下路径。

安装完毕以后,需要配置一下JAVA_HOME环境变量。

配置方法如下。

1、点击我的电脑—>属相—>高级—>环境变量—>系统变量

2、新建变量,变量名JAVA_HOME 路径:E:\Program Files\Java\jdk1.6.0_11 (我的是在E盘,你的JDK安装到那个盘,就写那个盘)

3、找到path变量,在后面添加路径:;%JAVA_HOME%\jre6\bin

OK,一路确定,关闭窗口。

打开CMD,输入java -version

看看能不能出来版本?

java version “1.6.0_11″
Java(TM) SE Runtime Environment (build 1.6.0_11-b03)
Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode, sharing)

 

OK,我的没有问题了,呵呵,现在,我们测试一下,看看他的压缩效果。

我们就压缩一个Dreamweaver自带的“AC_RunActiveContent.js”脚本文件。

下图中,左侧的是原始文件,右侧的是压缩后的文件。

YUI压缩对比图

呵呵,接近50%的压缩比,不错了!另外,就目前测试的情况来看,非常完美,不会出现在线压缩工具经常出现的“语法错误”了。   :mrgreen:

原文链接| 暂无评论

Jquery Select 模拟插件 V1.3

Jquery Select 模拟插件 V1.2 Demo 图片

Demo地址:http://www.zhangjingwei.com/demo/jQuery.Select/index.html

插件下载

点此链接下载Jquery Select(单选) 模拟插件 V1.3

它有什么作用1、系统自带的菜单只能改变高度,无法改变其他的样式,如果你想弄一个圆角的菜单,这是不可能的。
2、在IE6下,select存在着z-index的问题,除了iframe可以和它对抗外,其他元素都“罩”不住它。
3、给作者自己练手,看咱这介绍页面也整的有模有样。
插件简介1、根据原有的select 模拟生成新的 select。(避免程序大规模调整)
2、支持键盘,可通过键盘选择选项。(向上键,向下键,Home键,End键,Pg Up键,Pg Dn键,回车键,Esc键)
3、可自定义样式。
4、方便灵活,可选择需要的seletc 进行模拟(非全局模拟)
5、判断用户是否开启脚本支持,若未开启,不进行模拟。
12月09日更新 V1.3a、优化代码。
b、针对索引值进行了测试,修正部分情况下索引值混乱的Bug。
c、增加对home\pg up\pg dn\end 的支持
d、生成select宽度可自动延展性质。
e、一些细节调整。
后期版本计划a、增加对ul位置的判断。
b、增加ul高度的处理。
其他:a、有的朋友说在IE6下无法关闭,我在本地测试是没有问题的,JS内关闭窗口也是在移开焦点的时候触发。这是为什么?
b、向曾分享过插件的前辈们并能不间断更新的人表示最最崇高的敬意,真的,好辛苦。

原文链接| 评论 (5)

气泡提示

首先我们构建页面的结构,在这里我建立了三个不同的容器,第一个容器内是文字,第二个是图片,第三个是表单。由于在页面制作过程中,我们经常会遇到表单,图片,文字混排的情况,所以我在这些容器的上方故意放置一些输入框,图片和选者框进行测试。(由于IE6在处理选择框的z-index层次的时候存在bug,因此我们使用它。)

[-]?View Code HTML4STRICT
<input style="background:blue; border:1px solid #000;" maxlength="134217727" size="20" type="text" />
<div class="tipBox">
<div id="tips0" class="tips"><span>点击查看原图</span></div>
<div class="onTips">鼠标移动到此上显示提示文字</div>
</div>
 
<img src="tip_bulb.gif" alt="" width="100" height="25" />
<div class="tipBox">
<div id="tips1" class="tips"><span>点击这里查看更大的图片</span></div>
<div class="onTips"><img src="tip_bulb.gif" alt="" width="100" /></div>
</div>
<select><option selected="65535" value="1">abc</option></select>
<div class="tipBox">
<div id="tips2" class="tips"><span>WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW</span>&lt; ![endif]--&gt;</div>
<div class="onTips">
<input style="background:red; border:1px solid #000;" maxlength="134217727" size="20" type="text" /></div>
</div>

接下来,我们书写样式表,这里需要注意的是.tips iframe中的属性全部是必须的,缺一不可。display:block及滤镜在这里是均是为处理ie6下的差异。

/*  Tips  */
.tipBox {
	position:relative; /* 设置气泡提示为相对定位已保证气泡层准确的游动在文字上方 */
	cursor:pointer;
}
.tips {
	background:url(tip_bulb.gif) no-repeat; /* 背景采用滑动门的方式,以无限扩展 */
	width:auto; /* 宽度自动 */
	height:25px;
	position:absolute; /* 设置气泡提示层为绝对定位 */
	top:-26px;
	left:-4px;
	display:none; /* 默认设置隐藏 */
	z-index:10; /* 由于气泡提示可能会遇到ie6下select的bug,故设置他的z-index为10,用以解决这个问题 */
}
.tips:not(iced) {
	top:-23px; /* 矫正firefox下气泡提示层的距离 */
}
.tips iframe
{
	position:absolute;
	top:0;
	left:0;
	z-index:-1;
	filter:mask(); /* 使用遮罩滤镜,这是必须的 */
	display:block; /* 默认设置隐藏 */
}
.tips span {
	background:url(tip_bg.gif) right top no-repeat; /* 气泡内的元素的容器,设置背景用以和该容器的父容器结合 */
	max-width:725px; /* 设置最大宽度为725像素,only firefox */
	overflow:hidden;
	height:25px;
	display:inline-block; /* 将其已块级元素的方式内敛传递 */
	margin-left:20px;
	padding-right:8px;
	font:12px/23px Arial, Helvetica, sans-serif;
	white-space:nowrap; /* 不允许折行 */
}

我使用了JQuery框架,如果您原生js或者其他框架,思路是一致的

[-]?View Code JAVASCRIPT
$(document).ready(function(){
	$(".tipBox").mouseover(function(){
	var tipNum = $(this).children(".tips").attr("id"); /* 取得当前的id */
	$("#"+tipNum).show(); /* 我本来使用setTimeout控制了一个延迟,但这个效果在ie6下由于个人技术问题出现了问题,只好改用简单“显示、隐藏”,真是一个遗憾 */
	});
	$(".tipBox").mouseout(function(){
	var tipNum = $(this).children(".tips").attr("id");
	clearTimeout(this.timeout);
	$("#"+tipNum).hide()
	});
});

原文链接| 暂无评论