用jQuery实现图片预加载.
网站系列中常用的图片预加载技术。
我将此技术用到了小图 显示大图, 效果还可以。
通过这个插件你可以 完成更多的 效果,比如图片相册,幻灯片 等等。。。
期待更多朋友利用此插件 开发更多效果。
演示:
http://cssrain.cn/demo/preloadimages/preload.html
下载:
http://cssrain.cn/demo/preloadimages/preloadimages.rar
网站系列中常用的图片预加载技术。
我将此技术用到了小图 显示大图, 效果还可以。
通过这个插件你可以 完成更多的 效果,比如图片相册,幻灯片 等等。。。
期待更多朋友利用此插件 开发更多效果。
演示:
http://cssrain.cn/demo/preloadimages/preload.html
下载:
http://cssrain.cn/demo/preloadimages/preloadimages.rar
iframe高度自适应问题在项目中经常遇到,下面的例子就是一个解决方案,
通过iframe的onload方法,然后动态设置高度。
演示1:
http://cssrain.cn/demo/iframeHeight/index.html
http://cssrain.cn/demo/iframeHeight/plugin/index.html
下载:
http://cssrain.cn/demo/iframeHeight/iframeHeight.rar
jove [2009-03-26 10:25 AM | 220.165.246.34 | ] :
请教一个问题,鼠标移入链接时弹出菜单层,鼠标移出链接或弹出的菜单层时隐藏菜单层,如果菜单层不是链接的子元素,应该如何绑定mouseout事件?
如果光是这样写:$(“#link”).hover(function(){,当鼠标仅仅只是移除链接的时候菜单层就消失了。
针对这位朋友提的问题,请看下面的解决方案:
演示:
http://www.cssrain.cn/demo/popDiv2/popDiv1.html
http://www.cssrain.cn/demo/popDiv2/popDiv2.html
下载:
http://www.cssrain.cn/demo/popDiv2/popDiv2.rar
http://cssrain.cn/article.asp?id=1317
其实做动画 就像 电影院 放电影一样, 通过图片一张张的快速滑过幕布, 从而成像。
做动画原理很简单,一个相对定位 + 一个绝对定位 + 固定宽度 + overflow:hiden 即可。
看下面的例子,一步步来完成动画的制作:
教程1:
http://cssrain.cn/demo/animateDev/t1/d1.html
http://cssrain.cn/demo/animateDev/t1/d2.html
http://cssrain.cn/demo/animateDev/t1/d3.html
http://cssrain.cn/demo/animateDev/t1/d4.html
http://cssrain.cn/demo/animateDev/t1/d5.html
http://cssrain.cn/demo/animateDev/t1/d6.html
教程2:
http://cssrain.cn/demo/animateDev/t2/demo1.html
http://cssrain.cn/demo/animateDev/t2/demo2.html
http://cssrain.cn/demo/animateDev/t2/demo3.html
实例1:
http://cssrain.cn/demo/animateDev/t3/demo1.html
下载:
http://cssrain.cn/demo/animateDev/animateDev.rar
在BS 项目中 经常需要用到这种弹出层。
做这种弹出层一般都会遇到下面几个问题:
0,弹出层必须定义在input的下边显示。
1,点击input弹出div层。
2,点击div层外面任何地方,关闭div层。
3,ie6下,div层与下拉框的优先级问题。
下面这个例子就是解决这些问题的,大家可以参考参考,有什么更好的解决方案,请留言。
超级简单版 演示:
http://cssrain.cn/demo/popDiv/easyPopDiv.html
实例版 演示:
http://cssrain.cn/demo/popDiv/popDiv.html
下载:
http://cssrain.cn/demo/popDiv/popDiv.rar
关闭层后,给document bind的click事件 应该unbind。
此弹出框特点:
1,弹出层出现在 文本框 下面.
2,点击弹出层内部 不关闭层,点击外面关闭弹出层.
3,ie6依然能遮住下拉框.
当时遇到的问题以及解决方案 :
1,获取文本框的高度,当初用的.height(),结果发现有问题,border等都没算进去,后来改用.outerHeight(true)解决。
2,阻止事件冒泡,当初用的return false;结果弄的多选框不能选了,
因为return false包括e.stopPropagation()和e.preventdefault(),e.preventdefault()会阻止元素的默认动作,
所以多选框不能选中了。改用e.stopPropagation()后,一切正常。
3,$(“body”)和$(document)的区别,因为body的高度未知,所以导致click()事件无效,改为$(document) 解决。
4,ie6下,层与下拉框的问题,采用jquery.bigframe插件解决。
这个倒计时的构思比较巧妙,呵呵,我自认为的。
计时调用 通过jquery的animate()方法。
计时停止 通过jquery的stop()方法。
而重新开始计时则使用了 jquery的data()方法记录一些变量,使之重新开始。
Demo:
http://cssrain.cn/demo/timecount.html
源代码注释:
jQuery.fn.countDown = function(settings,to) {
if(!to && to != settings.endNumber) { to = settings.startNumber; }
this.data(“CR_currentTime”,to);
$(this).text(to).animate({“none”:”none”},settings.duration,'',function() {
if(to > settings.endNumber + 1) {
$(this).countDown(settings,to – 1);
}else{
settings.callBack(this);
}
});
return this;
};
//计时&&重新计时
jQuery.fn.CRcountDown = function(settings) {
settings = jQuery.extend({
startNumber: 10,
endNumber: 0,
duration: 1000,
callBack: function() { }
}, settings);
this.data(“CR_duration”,settings.duration);
this.data(“CR_endNumber”,settings.endNumber);
this.data(“CR_callBack”,settings.callBack);
return this.stop().countDown(settings);
};
//计时暂停
jQuery.fn.pause = function(settings) {
return this.stop();
};
//暂停后,重新开始
jQuery.fn.reStart = function() {
return this.pause().CRcountDown({
startNumber : this.data(“CR_currentTime”),
duration : this.data(“CR_duration”),
endNumber : this.data(“CR_endNumber”),
callBack : this.data(“CR_callBack”)
});
};
使用方法:
// 开始 && 重新开始
$(“#start”).click(function(){
$(“#test”).CRcountDown({
startNumber:15,
callBack:test
})
.css(“color”,”red”);
});
// 暂停
$(“#pause”).click(function(){
$(“#test”).pause();
});
// 暂停后 重新开始
$(“#again”).click(function(){
$(“#test”).reStart();
});
function test(){
$(“
计时1结束!
“)
.hide()
.fadeIn(1000)
.appendTo(“body”);
}
2 ,jquery 倒计时插件(刷新保持计时状态)
用到jquery的cookie插件。感谢农民的升级。
下载地址:http://jquerylab.googlecode.com/files/2.rar
大家都知道 jQuery1.3.x更换了选择器引擎,选择了Sizzle。
那么Sizzle相对于jQuery以前的选择器有什么优势呢? 为什么速度能提升这么高?
最近我在国外的网站看到点内容,大概意思是这样说的。
至于Sizzle代码是怎么实现的,我也没去研究,但我可以给大家讲一个实例,也许这样大家更容易理解。
举个一个选择器来说: $(“div p”);
每个更换选择器之前,查找步骤如下:
1,先查找页面上所有的div 。
2,循环所有的div,查找每个div下的p 。
3,合并结果 。
采用Sizzle选择器之后,查找步骤如下:
1,先查找页面上所有的p 。
2,循环所有的p,查找每个p的父元素,
1)如果不是div,遍历上一层。
2)如果已经是顶层,排除此p。
3)如果是div,则保存此p元素。
从上面对比来看,最重要的是Sizzle 没有了 第三步 合并结果, 所以导致查找速度大幅提升。

提示效果:

由于CS4改进比较大,跟CS3的写法不同,所以我做了2个版本。
dw for CS4:是针对 CS4的。
dw for CS3 是针对cs3 以及 之前的6,7,8。
有问题,请在下面那留言。 使用愉快。
Google下载链接:
http://code.google.com/p/jquery-api-zh-cn/downloads/list
本地下载链接:
for CS3
for CS4
注:绿色版可以使用:
http://www.damipan.com/file/1M18E7x.html
webfedora是一个基于LAMP(Linux,Apache,Mysql,PHP)平台的一个WEB应用。服务端使用了Apache的Mod_Rewrite模块对URL进行了重写,所有的请求都会重新链接到index.php。然后通过修改的ThinkPHP框架(主要对路由部分进行了重写)来解析URL,执行对应的Module和Action。页面使用了Smarty模板。
为了减小数据传输的大小,可以使用浏览器的压缩功能。现在的浏览器一般都支持GZIP,DEFLATE压缩,服务端检测支持的压缩类型执行对应的压缩(PHP中有gzdeflate和gzcompress压缩函数)。为了能够让客户端知道用什么编码方式解压缩,需要向客户端发送Content-Encoding头信息。同时向客户端发送Last-Modified的头信息,当客户端发起下一次的请求的时候,如果文件未修改,则直接发送HTTP/1.1 304 Not Modified的头信息,让浏览器读取缓存就可以了。
对于AJAX的请求,服务端返回的是JSON格式的数据。一方面数据相对XML来说要更小,另一方面客户端对返回的数据eval后就可以处理了,避免了XML解析需要的时间。在PHP5.2.*版本中已经有json_encode和json_decode函数。在本版本中提供了完整的仿fedora8的登陆系统和完整的仿Baidu Hi的webim,在以后的版本中会陆续提供 file system,web terminal,web ttplayer,rss reader,web editplus等服务。
演示:
http://www.webfedora.com/

演示:
http://www.cssrain.cn/demo/addCart/cart1.html
代码注释:
$(function(){
$(“#productlist ul li a”).click(function(){
//删除页面中已经有的 阴影
$(“#cart_shadow”).remove();
//创建阴影div
var $shadow = $('
').prependTo(“body”);
//获取当前点击的前一个img标签
var $img = $(this).prev(“img”);
//利用img标签的宽度,高度,上边距等属性来设置阴影div
$shadow.css({
'width' : $img.css('width'),
'height': $img.css('height') ,
'position' : 'absolute',
'top' : $img.offset().top,
'left' : $img.offset().left,
'opacity' : 0.6
})
.show();
//获取购物车标签
var $cart = $(“#cart”);
//利用购物车表情按的宽度,高度,上边距等属性来设置阴影div的动画效果
$shadow.animate({
width: $cart.innerWidth(),
height: $cart.innerHeight(),
top: $cart.offset().top,
left: $cart.offset().left,
opacity: 0
}, { duration: 600 , complete: function(){
$cart.append(“
“);
}
})
//阻止超链接跳转
return false;
});
});