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 相关文章推荐
jquery实现简单实用的轮播器
May 23 jQuery
jQuery 添加样式属性的优先级别方法(推荐)
Jun 08 jQuery
jQuery复合事件用法示例
Jun 10 jQuery
详谈表单格式化插件jquery.serializeJSON
Jun 23 jQuery
zTree jQuery 树插件的使用(实例讲解)
Sep 25 jQuery
jquery实现楼层滚动效果
Jan 01 jQuery
jquery+css3实现熊猫tv导航代码分享
Feb 12 jQuery
jQuery实现判断上传图片类型和大小的方法示例
Apr 11 jQuery
jquery引入外部CDN 加载失败则引入本地jq库
May 23 jQuery
jQuery扩展方法实现Form表单与Json互相转换的实例代码
Sep 05 jQuery
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
Jun 18 jQuery
jquery自定义组件实例详解
Dec 31 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
codeigniter使用技巧批量插入数据实例方法分享
2013/12/31 PHP
php中的观察者模式简单实例
2015/01/20 PHP
php创建多级目录的方法
2015/03/24 PHP
利用php-cli和任务计划实现刷新token功能的方法
2017/05/03 PHP
List all the Databases on a SQL Server
2007/06/21 Javascript
jQuery UI 实现email输入提示实例
2013/08/15 Javascript
中止javascript执行的方法
2014/02/14 Javascript
js中回调函数的学习笔记
2014/07/31 Javascript
JavaScript中的无阻塞加载性能优化方案
2014/10/10 Javascript
Javascript学习笔记之函数篇(五) : 构造函数
2014/11/23 Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
2015/05/26 Javascript
js表单验证实例讲解
2016/03/31 Javascript
js+html5实现页面可刷新的倒计时效果
2017/07/15 Javascript
BootStrap Fileinput上传插件使用实例代码
2017/07/28 Javascript
Thinkphp5微信小程序获取用户信息接口的实例详解
2017/09/26 Javascript
React Navigation 使用中遇到的问题小结
2018/05/08 Javascript
Jquery的autocomplete插件用法及参数讲解
2019/03/12 jQuery
js 根据对象数组中的属性进行排序实现代码
2019/09/12 Javascript
原生JS实现天气预报
2020/06/16 Javascript
深入解析微信小程序开发中遇到的几个小问题
2020/07/11 Javascript
微信小程序自定义yPicker组件实现省市区三级联动功能
2020/10/29 Javascript
[01:04:48]VGJ.S vs TNC Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
[03:12]完美世界DOTA2联赛PWL DAY7集锦
2020/11/06 DOTA
在Python的Flask框架中实现全文搜索功能
2015/04/20 Python
基于python时间处理方法(详解)
2017/08/14 Python
PyQt5每天必学之日历控件QCalendarWidget
2018/04/19 Python
python中的decorator的作用详解
2018/07/26 Python
对python pandas 画移动平均线的方法详解
2018/11/28 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
2018/12/26 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
2019/02/18 Python
西式结婚主持词
2014/03/14 职场文书
临床护理求职信
2014/04/26 职场文书
关于美容院的活动方案
2014/08/14 职场文书
幼儿教师师德师风演讲稿
2014/08/22 职场文书
关于召开会议的通知
2015/04/15 职场文书
JavaScript中MutationObServer监听DOM元素详情
2021/11/27 Javascript