jQuery插件---倒计时。
时间:2009-03-20
来源:互联网
这个倒计时的构思比较巧妙,呵呵,我自认为的。
计时调用 通过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(){
$("<p>计时1结束!</p>")
.hide()
.fadeIn(1000)
.appendTo("body");
}
计时调用 通过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(){
$("<p>计时1结束!</p>")
.hide()
.fadeIn(1000)
.appendTo("body");
}
作者: cssrain 发布时间: 2009-03-20
我想问,CRcountDown方法中,this.data中的this是指代什么呢?
作者: 最小公倍数 发布时间: 2009-03-22
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28