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,Angular实现登录界面验证码详解
Apr 27 jQuery
jQuery EasyUI tree增加搜索功能的实现方法
Apr 27 jQuery
jQuery extend()详解及简单实例
May 06 jQuery
jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码
Aug 23 jQuery
JavaScript自执行函数和jQuery扩展方法详解
Oct 27 jQuery
jquery学习笔记之无new构建详解
Dec 07 jQuery
jQuery niceScroll滚动条错位问题的解决方法
Feb 03 jQuery
jQuery实现使用sort方法对json数据排序的方法
Apr 17 jQuery
jQuery 操作 HTML 元素和属性的方法
Nov 12 jQuery
jQuery - AJAX load() 实例用法详解
Aug 27 jQuery
Jquery使用each函数实现遍历及数组处理
Jul 14 jQuery
jQuery实现简单轮播图效果
Dec 27 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
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
2007/05/03 PHP
PHP设计模式之装饰者模式
2012/02/29 PHP
详解php的socket通信
2015/08/11 PHP
yum命令安装php7和相关扩展
2016/07/04 PHP
js cookies实现简单统计访问次数
2009/11/24 Javascript
拖动table标题实现改变td的大小(css+js代码)
2013/04/16 Javascript
jquery如何实现锚点链接之间的平滑滚动
2013/12/02 Javascript
使用js判断控件是否获得焦点
2014/01/03 Javascript
CSS3,HTML5和jQuery搜索框集锦
2014/12/02 Javascript
JS基于VML技术实现的五角星礼花效果代码
2015/10/26 Javascript
深入解析JavaScript中的立即执行函数
2016/05/21 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
2016/10/14 Javascript
解决ajax不能访问本地文件问题(利用js跨域原理)
2017/01/24 Javascript
vue.js如何将echarts封装为组件一键使用详解
2017/10/10 Javascript
Vue 创建组件的两种方法小结(必看)
2018/02/23 Javascript
使用vue的transition完成滑动过渡的示例代码
2018/06/25 Javascript
jQuery冲突问题解决方法
2021/01/19 jQuery
[02:57]2014DOTA2国际邀请赛 选手辛苦解说更辛苦
2014/07/10 DOTA
python使用PyGame绘制图像并保存为图片文件的方法
2015/04/24 Python
Python简单网络编程示例【客户端与服务端】
2017/05/26 Python
python学习之matplotlib绘制散点图实例
2017/12/09 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
2018/01/08 Python
Python中GIL的使用详解
2018/10/03 Python
使用coverage统计python web项目代码覆盖率的方法详解
2019/08/05 Python
Keras - GPU ID 和显存占用设定步骤
2020/06/22 Python
Ubuntu权限不足无法创建文件夹解决方案
2020/11/14 Python
Python爬虫之App爬虫视频下载的实现
2020/12/08 Python
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
2013/07/15 HTML / CSS
印度最大的酒店品牌网络:OYO Rooms
2016/07/24 全球购物
英国创新设计文具、卡片和礼品包装网站:Paperchase
2018/07/14 全球购物
用C语言实现文件读写操作
2013/10/27 面试题
维稳工作情况汇报
2014/10/27 职场文书
物流仓管员岗位职责
2015/04/01 职场文书
社区法制宣传月活动总结
2015/05/07 职场文书
JavaScript如何优化逻辑判断代码详解
2021/06/08 Javascript
Python安装使用Scrapy框架
2022/04/12 Python