简单的jQuery扩展函数-让函数缓冲执行
$.fn.retarder = function(delay, method) {
var node = this;
if (node.length) {
if (node[0]._timer_) clearTimeout(node[0]._timer_);
node[0]._timer_ = setTimeout(function() {
method(node);
},
delay);
}
return this;
};
原理就是用了setTimeout这函数, 使用方法
$(div).retarder(150,
function(i) {
box.css({
height: box[0].hei - 50,
width: box[0].wid,
overflow: 'hidden'
});
i.css(animate.from).stop(true, true).animate(animate.to, {
duration: 200,
complete: function() {
if (!$.browser.msie) div.css('opacity', 1);
box.css('display', 'none')
}
})
})
使用实例基于缓冲器做成的图片轮播渐显插件如下:
HTML
<div>
<img src="/images/1.png" />
</div>
<div>
<img src="/images/2.png" />
</div>
<div>
<img src="/images/3.png" />
</div>
<div>
<img src="/images/4.png" />
</div>
<div>
<img src="/images/5.png" />
</div>
</div>
jQuery
$.fn.initSlideshow = function () {
var self = $(this);
self.find("div").each(function (n) {
var This = $(this);
This.retarder(n * 2000, function (node) {
node.fadeIn(1000, function () {
if (n == self.find("div").length - 1) {
/*self.find("div").fadeOut(1000).retarder(2000, function (node) {
node.fadeIn(1000);
});*/
self.find("div").retarder(5000, function (node) {
node.fadeOut(1000);
});
self.retarder(7000, function (node) {
node.initSlideshow();
});
}
});
});
});
};
CSS
#slideshow {
width: 1040px;
height: 345px;
padding-left: 10px;
}
#slideshow div {
float: left;
height: 345px;
line-height: 345px;
display: none;
}
简单的jQuery扩展函数-让函数缓冲执行的更多相关文章
- jQuery的$.get()函数不执行以及php端报错Uncaught Error: Call to a member function bind_param() on boolean in...
写了一个html,用到了jQuery,发现没有按照预期的结果显示,最后定位到是$.get()函数没有运行 调试过程为: 在页面右击查看元素,到网络那一栏,找到类型为json的那个包点击,然后查看响应, ...
- Jquery ajax回调函数不执行
ajax如下: $.post( "${pageContext.request.contextPath}/deptHead_assign.action", {"studen ...
- js、jquery的入口函数及其执行与图片加载的先后顺序
js的入口函数写法: window.onload = function() { }; 如果文件中有多个window.onload入口函数,则只会执行最后一个,之前的入口函数没有用. jquery的入口 ...
- jQuery源码,匿名函数自执行
jQuery框架的首尾是这样写的()(), (function(window){//这个window是个入参,随便起个名字都行 //这里面全都是js代码 })(window)//这个括号里的windo ...
- 使用jquery移除前面通过onclick绑定的元素的事件,然后重新绑定别的函数来执行onclick事件。
http://caibaojian.com/css3/experience/bugs.htm 使用jquery移除前面通过onclick绑定的元素的事件,然后重新绑定别的函数来执行onclick事件. ...
- 关于jQuery中toggle参数callback函数提前执行问题
通过 jQuery,您可以使用 toggle() 方法来切换 hide() 和 show() 方法. 显示被隐藏的元素,并隐藏已显示的元素: $(selector).toggle(speed,call ...
- jQuery - 1.简单的JQuery
1.简单的JQuery 2.jQuery对象(包装集).Dom对象 3.JQuery提供的函数 1.简单的JQuery $(document).ready(function () { alert(&q ...
- jQuery Ajax 操作函数及deferred对象
jQuery Ajax 操作函数 jQuery 库拥有完整的 Ajax 兼容套件.其中的函数和方法允许我们在不刷新浏览器的情况下从服务器加载数据. 函数 描述 jQuery.ajax() 执行异步 H ...
- 详细解读Jquery各Ajax函数:$.get(),$.post(),$.ajax(),$.getJSON()
一,$.get(url,[data],[callback]) 说明:url为请求地址,data为请求数据的列表(是可选的,也可以将要传的参数写在url里面),callback为请求成功后的回调函数,该 ...
随机推荐
- ios wax热更新之安装wax(xcode7.3.1)
通过Finder浏览到你保存该项目的文件夹.创建三个新的文件夹:wax.scripts和Classes. 第一:首先,下载源代码的压缩包.Wax放在GitHub上(https://github.com ...
- [Android Pro] Android studio jni中调用Log输出调试信息
reference to : http://www.linuxidc.com/Linux/2014-02/96341.htm Android 开发中,java 可以方便的使用调试信息Log.i, Lo ...
- 用线框模式绘制多边形 glPolygonMode
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); glBegin(GL_TRIANGLES);//开始以g_ViewMode模式绘制 glColor3ub(182. ...
- *** Assertion failure in -[UIApplication _runWithMainScene:transitionContext iOS9.1闪退问题解决
错误原因在于 AppDelegate 中 didFinishLaunchingWithOptions 结束前 未定义 rootViewController,Xcode7规定必须要有rootViewCo ...
- NYOJ之三个数从小到大排序
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsoAAAGvCAIAAADNJWRjAAAgAElEQVR4nO3dPXLqSrs24DMJcgbi1A
- 昨天一日和彭讨论post请求数据的问题
上午写了一个for循环,下午与同学视频才知道没有解决根本问题,接口是url单个的数据请求,而导入的是多个员工的考勤数据也就是要有多个请求同时发出,利用这个做法是有链接超时的情况,所以昨天晚上彭为了导入 ...
- 【转载】 Python动态生成变量
用Python循环创建多个变量, 如创建 a1= .a2= .a3= .a4= .a5= 或 self.a1= .self.a2= . self.a3= 一. 可以通 ...
- 在PYTHON3中,使用Asyncio来管理Event loop
#!/usr/bin/env python # -*- coding: utf-8 -*- import asyncio import datetime import time def functio ...
- [译]关于.NET Core1.1的通告
以下翻译可能会有不准确的地方, 想看原文的童鞋移步到Announcing .NET Core 1.1, 微软的开源真心喜欢, 希望有更多的童鞋关注微软, 关注.NET Core 我们很兴奋地宣布.NE ...
- linux命令执行返回值(附错误对照表)
转自:http://blog.sina.com.cn/s/blog_6739945f0100zt4b.html 在 Linux 下,不管你是启动一个桌面程序也好,还是在控制台下运行命令,所有的程序在结 ...