JQuery中queue方法用法示例


Posted in jQuery onJanuary 31, 2019

本文实例讲述了JQuery中queue方法用法。分享给大家供大家参考,具体如下:

jquery的queue方法

显示或操作在匹配元素上执行的函数队列

意思就是对匹配上的元素,显示作用在这个元素上的函数的个数,也就是上述所说的“显示”,而操作则是更改这些作用在该元素上的函数队列

举个例子:

<style>
 div { margin:3px; width:40px; height:40px;
    position:absolute; left:0px; top:30px;
    background:green; display:none; }
 div.newcolor { background:blue; }
 span { color:red; }
</style>
<button id="show">Show Length of Queue</button>
<span></span>
<div></div>
$("#show").click(function () {
   var n = $("div").queue("fx");
   $("span").text("Queue length is: " + n.length);
});
function runIt() {//里面有一系列作用于div元素的函数,一共为8个(在没有执行$("div").slideUp("normal", runIt);这个语句的时候显示的结果是8个,每次执行完一个都会减少一个,但是当所有动作执行完又再次执行RUNIT()的时候,结果就不是八而是十六了,很明显它把原本执行完的序列,原本应该为0的时候它却是8+8而不是0+8的结果显示),
//但如果你复制以上代码发现点击按钮是小于8,是因为你点击的时候动作已经开始执行,序列-1
   $("div").show("slow");
   $("div").animate({left:'+=200'},2000);
   $("div").slideToggle(1000);
   $("div").slideToggle("fast");
   $("div").animate({left:'-=200'},1500);
   $("div").hide("slow");
   $("div").show(1200);
   $("div").slideUp("normal", runIt);
}
runIt();

讨论的重点不是它重复执行RUNIT()的时候的序列长度,这个不管一般也用不上

而是如何用queue来操作函数序列

<style>
 div { margin:3px; width:40px; height:40px;
    position:absolute; left:0px; top:30px;
    background:green; display:none; }
 div.newcolor { background:blue; }
</style>
<button id="start">Start</button>
<button id="stop">Stop</button>
<div></div>
$("#start").click(function () {
   $("div").show("slow");
   $("div").animate({left:'+=200'},5000);
   $("div").queue(function () {//创建一个匿名函数作为一个<动画>序列,忘记说明$("div").queue("fx"),默认参数是 fx, 标准的效果序列。当然你也可以将addclass这个操作自定义成一个动画效果也是可以的,现在这种写法,addclass也变成了一个效果函数,并成了序列的内容
     $(this).addClass("newcolor");
     $(this).dequeue();//插入自定义函数之后,如果还需要继续还行队列,则用dequeue(),如果不用这个函数,动画将停止,当然动画序列还是在的,这并不是意味着删除剩下的序列,这代码只能放自定义函数最后面,如果放在外面会有意料之外的效果,比如它不是按照播放完一个动画再执行自定义函数里面的内容,而是在上一个动画开始后立马就执行了,而放在自定义函数内部则不会出现这个问题。
   });
   $("div").animate({left:'-=200'},1500);
   $("div").queue(function () {
     $(this).removeClass("newcolor");
     $(this).dequeue();
   });
   $("div").slideUp();
 });
 $("#stop").click(function () {
   $("div").queue("fx", []);//stop是结束当前正在进行的动画,如果除了当前动画还有后续动画,则会立马执行下一个动画,而这一句是将序列用新的数组(这里是空数组)代替原本的序列,意味着,删除了剩下的所有动画序列,所以这里就能体现出queue的作用,它主要还是用来替换和删除动画效果,新增的话可以用其他代替
   $("div").stop();
 });

希望本文所述对大家jQuery程序设计有所帮助。

jQuery 相关文章推荐
vue中如何引入jQuery和Bootstrap
Apr 10 jQuery
jQuery操作css样式
May 15 jQuery
Jquery把获取到的input值转换成json
May 15 jQuery
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
Aug 01 jQuery
基于jquery实现多选下拉列表
Aug 02 jQuery
jQuery的ztree仿windows文件新建和拖拽功能的实现代码
Dec 05 jQuery
jQuery基于随机数解决中午吃什么去哪吃问题示例
Dec 29 jQuery
jQuery实现根据身份证号获取生日、年龄、性别等信息的方法
Jan 09 jQuery
jQuery实现为table表格动态添加或删除tr功能示例
Feb 19 jQuery
详解JQuery基础动画操作
Apr 12 jQuery
jQuery 查找元素操作实例小结
Oct 02 jQuery
基于JavaScript或jQuery实现网站夜间/高亮模式
May 30 jQuery
AJAX在JQuery中的应用详解
Jan 30 #jQuery
jQuery访问json文件中数据的方法示例
Jan 28 #jQuery
jQuery实现的网站banner图片无缝轮播效果完整实例
Jan 28 #jQuery
jQuery实现合并表格单元格中相同行操作示例
Jan 28 #jQuery
在Vue项目中引入JQuery-ui插件的讲解
Jan 27 #jQuery
在vue项目中使用Jquery-contextmenu插件的步骤讲解
Jan 27 #jQuery
jQuery实现左右两个列表框的内容相互移动功能示例
Jan 27 #jQuery
You might like
消息持续发送的完整例子
2006/10/09 PHP
Discuz! 5.0.0论坛程序中加入一段js代码,让会员点击下载附件前自动弹出提示窗口
2007/04/18 PHP
array_multisort实现PHP多维数组排序示例讲解
2011/01/04 PHP
php加密解密函数authcode的用法详细解析
2013/10/28 PHP
PHP程序漏洞产生的原因分析与防范方法说明
2014/03/06 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
2014/03/28 PHP
Thinkphp的volist标签嵌套循环使用教程
2014/07/08 PHP
php微信公众平台开发类实例
2015/04/01 PHP
PHP验证信用卡卡号是否正确函数
2015/05/27 PHP
Joomla实现组件中弹出一个模式(modal)窗口的方法
2016/05/04 PHP
七种PHP开发环境搭建工具
2020/06/28 PHP
动态调用css文件——jquery的应用
2007/02/20 Javascript
jQuery DIV弹出效果实现代码
2009/07/03 Javascript
javascript中length属性的探索
2011/07/31 Javascript
导航跟随滚动条置顶移动示例代码
2013/09/11 Javascript
javascript中对Attr(dom中属性)的操作示例讲解
2013/12/02 Javascript
js控制鼠标事件移动及移出效果显示
2014/10/19 Javascript
JavaScript实现的一个计算数字步数的算法分享
2014/12/06 Javascript
js实现一个链接打开两个链接地址的方法
2015/05/12 Javascript
整理Javascript数组学习笔记
2015/11/29 Javascript
connection reset by peer问题总结及解决方案
2016/10/21 Javascript
[32:56]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.11
2020/12/16 DOTA
在Python的Django框架中编写错误提示页面
2015/07/22 Python
浅谈python中的getattr函数 hasattr函数
2016/06/14 Python
django 类视图的使用方法详解
2019/07/24 Python
解决tensorboard多个events文件显示紊乱的问题
2020/02/15 Python
CSS3 完美实现圆角效果
2009/07/13 HTML / CSS
ivx平台开发之不用代码实现一个九宫格抽奖功能
2021/01/27 HTML / CSS
美国珠宝店:Helzberg Diamonds
2018/10/24 全球购物
荣耀俄罗斯官网:HONOR俄罗斯
2020/10/31 全球购物
员工评语大全
2014/01/19 职场文书
服务承诺口号
2014/05/22 职场文书
医院义诊活动总结
2014/07/04 职场文书
家庭财产分割协议范文
2014/11/24 职场文书
Sql Server 行数据的某列值想作为字段列显示的方法
2022/04/20 SQL Server
mysql性能优化以及配置连接参数设置
2022/05/06 MySQL