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 相关文章推荐
简单谈谈require模块化jquery和angular的问题
Jun 23 jQuery
jQuery简介_动力节点Java学院整理
Jul 04 jQuery
使用jQuery 操作table 完成单元格合并的实例
Dec 27 jQuery
jQuery实现文件编码成base64并通过AJAX上传的方法
Apr 12 jQuery
Easyui 去除jquery-easui tab页div自带滚动条的方法
May 10 jQuery
详解jQuery如何实现模糊搜索
May 10 jQuery
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
Jun 18 jQuery
jQuery位置选择器用法实例分析
Jun 28 jQuery
jQuery实现判断滚动条滚动到document底部的方法分析
Aug 27 jQuery
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
Nov 07 jQuery
jquery实现商品sku多属性选择功能(商品详情页)
Dec 20 jQuery
基于jQuery拖拽事件的封装
Nov 29 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
基于php设计模式中工厂模式详细介绍
2013/05/15 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
Symfony2实现在doctrine中内置数据的方法
2016/02/05 PHP
PHP中list方法用法示例
2016/12/01 PHP
PHP基础之输出缓冲区基本概念、原理分析
2019/06/19 PHP
newxtree.js代码
2007/03/13 Javascript
Javascript Math ceil()、floor()、round()三个函数的区别
2010/03/09 Javascript
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
window.print打印指定div实例代码
2013/12/13 Javascript
特殊情况下如何获取span里面的值
2014/05/20 Javascript
JavaScript获取文本框内选中文本的方法
2015/02/20 Javascript
Javascript中数组方法汇总(推荐)
2015/04/01 Javascript
js 自带的sort() 方法全面了解
2016/08/16 Javascript
javascript 使用正则test( )第一次是 true,第二次是false
2017/02/22 Javascript
详解ES6之用let声明变量以及let loop机制
2017/07/15 Javascript
JS动态添加元素及绑定事件造成程序重复执行解决
2017/12/07 Javascript
JavaScript中变量提升与函数提升经典实例分析
2018/07/26 Javascript
vue--点击当前增加class,其他删除class的方法
2018/09/15 Javascript
node.js命令行教程图文详解
2019/05/27 Javascript
微信小程序如何实现五星评价功能
2019/10/15 Javascript
[01:08]DOTA2次级职业联赛 - Shield战队宣传片
2014/12/01 DOTA
详解python中requirements.txt的一切
2017/03/03 Python
对Python中 \r, \n, \r\n的彻底理解
2020/03/06 Python
python中操作文件的模块的方法总结
2021/02/04 Python
HTML5中的进度条progress元素简介及兼容性处理
2016/06/02 HTML / CSS
Backcountry旗下的户外商品闪购网站:steep&cheap
2016/09/22 全球购物
家长对小学生的评语
2014/01/28 职场文书
社区道德讲堂实施方案
2014/03/21 职场文书
2014党员学习兰辉先进事迹思想汇报
2014/09/17 职场文书
股权转让协议书
2014/12/07 职场文书
房地产销售经理岗位职责
2015/02/02 职场文书
写给孩子的新学期寄语
2015/02/27 职场文书
幼儿园园长工作总结2015
2015/05/25 职场文书
Python 读写 Matlab Mat 格式数据的操作
2021/05/19 Python
Java实现二维数组和稀疏数组之间的转换
2021/06/27 Java/Android
详解Python中的for循环
2022/04/30 Python