jQuery中queue()方法用法实例


Posted in Javascript onDecember 29, 2014

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

此方法能够显示或者操作在匹配元素上执行的函数队列。

此方法可能用的并不是太频繁,但是却非常的重要,下面就结合实例来介绍一下次方法的用法。
根据方法参数的不同,作用也有所不同。
说明:建议结合dequeue()函数一起学习。
语法结构一:

$("selector").queue(queueName)

参数列表:

参数 描述
queueName 可选。 第一个匹配元素上动画队列的名称,默认值是“fx”。

没有参数的时候,能够返回第一个匹配元素上的动画队列。

实例代码:

<!DOCTYPE html>

<html>

<head>

<meta charset=" utf-8">

<meta name="author" content="https://3water.com/" />

<title>queue()函数-三水点靠木</title> 

<style type="text/css">

.box{

  width:300px;

  height:150px;

}

.mytest{

  width:50px;

  height:50px;

  background-color:green;

  position:absolute; 

  left:0px;

  display:none;

  font-size:12px;

}  

</style>

<script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script>

<script type="text/javascript">

$(document).ready(function(){

  $("#do").click(function(){

    $(".mytest").show(1000);

    $(".mytest").animate({left:"+=200"},3000);

    $(".mytest").animate({top:"+=50"},2000);

    $(".mytest").text("动画完成");

  })

  $("#count").click(function(){

    alert($(".mytest").queue().length)

  })

})

</script>

</head>

<body>

  <div class="box">

    <div class="mytest"></div>

  </div>

  <button id="do">点击开始动画</button>

  <button id="count">计算队列中函数数量</button>

</body>

</html>

由于queue()函数没有参数,所以返回值是第一个匹配元素上的动画队列,也就是div元素的动画队列,当点击第二个按钮的时候能够实时的计算出当前队列中的动画个数。
语法二:

$("selector").queue(callback())

可以为匹配元素的函数队列最后面添加一个函数。

参数列表:

参数 描述
callback() 匹配元素上的函数队列最后面要添加的函数。

在语法一的实例中,大家可能注意到一个问题,那就是我们希望在所有的动画都完成之后,再在div中添加“动画完成”四个字,但是从运行的实际表现来看,并非如此,这主要的原因是,show()和animate()动画函数会默认的添加到fx动画队列中,而text()方法并非动画函数,所以不会加入到fx队列,并且会首先执行。那么可以通过使用此函数,将text()方法入队。

实例代码:

实例一:

<!DOCTYPE html>

<html>

<head>

<meta charset=" utf-8">

<meta name="author" content="https://3water.com/" />

<title>queue()函数-三水点靠木</title> 

<style type="text/css">

.box{

  width:300px;

  height:150px;

}

.mytest{

  width:50px;

  height:50px;

  background-color:green;

  position:absolute; 

  left:0px;

  display:none;

  font-size:12px;

}  

</style>

<script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script>

<script type="text/javascript">

$(document).ready(function(){

  $("#do").click(function(){

    $(".mytest").show(1000);

    $(".mytest").animate({left:"+=200"},3000);

    $(".mytest").animate({top:"+=50"},2000);

    $(".mytest").queue(function(){$(this).text("动画完成")});

  })

  $("#count").click(function(){

    alert($(".mytest").queue().length)

  })

})

</script>

</head>

<body>

<div class="box">

  <div class="mytest"></div>

</div>

<button id="do">点击开始动画</button>

<button id="count">计算队列中函数数量</button>

</body>

</html>

以上代码实现了我们最终需要效果。

实例二:

<!DOCTYPE html>

<html>

<head>

<meta charset=" utf-8">

<meta name="author" content="https://3water.com/" />

<title>queue()函数-三水点靠木</title> 

<style type="text/css">

.box{

  width:300px;

  height:150px;

}

.mytest{

  width:50px;

  height:50px;

  background-color:green;

  position:absolute; 

  left:0px;

  display:none;

  font-size:12px;

}  

</style>

<script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script>

<script type="text/javascript">

$(document).ready(function(){

  $("#do").click(function(){

    $(".mytest").show(1000);

    $(".mytest").animate({left:"+=200"},3000);

    $(".mytest").animate({top:"+=50"},2000);

    $(".mytest").queue(function(){

      $(this).text("动画还将持续");

    });

    $(".mytest").animate({left:"-=200"},3000);

  })

  $("#count").click(function(){

    alert($(".mytest").queue().length)

  })

})

</script>

</head>

<body>

<div class="box">

  <div class="mytest"></div>

</div>

<button id="do">点击开始动画</button>

<button id="count">计算队列中函数数量</button>

</body>

</html>

以上代码中,我们想在执行完text()方法之后再执行一个自定义动画,但是表现却并非如此,最后面的自定义动画并没有执行。
代码修改如下:

<!DOCTYPE html>

<html>

<head>

<meta charset=" utf-8">

<meta name="author" content="https://3water.com/" />

<title>queue()函数-三水点靠木</title> 

<style type="text/css">

.box{

  width:300px;

  height:150px;

}

.mytest{

  width:50px;

  height:50px;

  background-color:green;

  position:absolute; 

  left:0px;

  display:none;

  font-size:12px;

}  

</style>

<script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script>

<script type="text/javascript">

$(document).ready(function(){

  $("#do").click(function(){

    $(".mytest").show(1000);

    $(".mytest").animate({left:"+=200"},3000);

    $(".mytest").animate({top:"+=50"},2000);

    $(".mytest").queue(function(){

      $(this).text("动画还将持续");

      $(this).dequeue();

    });

    $(".mytest").animate({left:"-=200"},3000);

  })

  $("#count").click(function(){

    alert($(".mytest").queue().length)

  })

})

</script>

</head>

<body>

<div class="box">

  <div class="mytest"></div>

</div>

<button id="do">点击开始动画</button>

<button id="count">计算队列中函数数量</button>

</body>

</html>

以上代码实现了我们的要求,在代码中添加:

$(this).dequeue();

也就是说通过queue()添加函数时,我们应当确保最终调用了 .dequeue(),这样下一个排队的函数才能够得到执行。

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

Javascript 相关文章推荐
js下用层来实现select的title提示属性
Feb 23 Javascript
关于jquery动态增减控件的一些想法和小插件
Aug 01 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
Feb 16 Javascript
JS简单限制textarea内输入字符数量的方法
Oct 14 Javascript
浅谈addEventListener和attachEvent的区别
Jul 14 Javascript
js select实现省市区联动选择
Apr 17 Javascript
Vue.directive自定义指令的使用详解
Mar 10 Javascript
JS计算输出100元钱买100只鸡问题的解决方法
Jan 04 Javascript
完美解决linux下node.js全局模块找不到的情况
May 16 Javascript
Vue-CLI3.x 设置反向代理的方法
Dec 06 Javascript
Angular处理未可知异常错误的方法详解
Jan 17 Javascript
React自定义hook的方法
Jun 25 Javascript
浅谈JavaScript function函数种类
Dec 29 #Javascript
JavaScript异步加载浅析
Dec 28 #Javascript
JavaScript设计模式之工厂方法模式介绍
Dec 28 #Javascript
JavaScript设计模式之抽象工厂模式介绍
Dec 28 #Javascript
JavaScript设计模式之单件模式介绍
Dec 28 #Javascript
理解javascript回调函数
Dec 28 #Javascript
JavaScript设计模式之建造者模式介绍
Dec 28 #Javascript
You might like
PHP常用技巧总结(附函数代码)
2012/02/04 PHP
比较discuz和ecshop的截取字符串函数php版
2012/09/03 PHP
php5.3以后的版本连接sqlserver2000的方法
2014/07/28 PHP
php实现以只读方式打开文件的方法
2015/03/16 PHP
php解决约瑟夫环算法实例分析
2019/09/30 PHP
让你的CSS像Jquery一样做筛选的实现方法
2011/07/10 Javascript
JSON传递bool类型数据的处理方式介绍
2013/09/18 Javascript
js模拟C#中List的简单实例
2014/03/06 Javascript
JavaScript实现拖拽网页内元素的方法
2015/04/15 Javascript
介绍JavaScript的一个微型模版
2015/06/24 Javascript
JavaScript获取页面中超链接数量的方法
2015/11/09 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记9)
2015/12/24 Javascript
分享12个实用的jQuery代码片段
2016/03/09 Javascript
Bootstrap每天必学之标签页(Tab)插件
2020/08/09 Javascript
JS关闭窗口时产生的事件及用法示例
2016/08/20 Javascript
需要牢记的JavaScript基础知识
2016/09/25 Javascript
使用vue.js实现联动效果的示例代码
2017/01/10 Javascript
Vue2.0组件间数据传递示例
2017/03/07 Javascript
JavaScript实现简单精致的图片左右无缝滚动效果
2017/03/16 Javascript
AngularJS实现的输入框字数限制提醒功能示例
2017/10/26 Javascript
js传递数组参数到后台controller的方法
2018/03/29 Javascript
vue+element模态框中新增模态框和删除功能
2019/06/11 Javascript
vue 解决异步数据更新问题
2019/10/29 Javascript
Python使用SocketServer模块编写基本服务器程序的教程
2016/07/12 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
2019/08/06 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
2020/05/15 Python
css3动画效果抖动解决方法
2018/09/03 HTML / CSS
纯CSS3实现滚动的齿轮动画效果
2014/06/05 HTML / CSS
巴西服装和鞋子购物网站:Marisa
2018/10/25 全球购物
Timberland俄罗斯官方网上商店:全球领先的户外品牌
2020/03/15 全球购物
外贸业务员的岗位职责
2013/11/23 职场文书
给学校的建议书
2014/03/12 职场文书
2014年护士工作总结范文
2014/11/11 职场文书
2015年社区重阳节活动总结
2015/07/30 职场文书
妇联2016年六一国际儿童节活动总结
2016/04/06 职场文书
《最后一头战象》读后感:动物也有感情
2020/01/02 职场文书