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 相关文章推荐
jquery获取下拉列表的值为null的解决方法
Mar 18 Javascript
加载远程图片时,经常因为缓存而得不到更新的解决方法(分享)
Jun 26 Javascript
js实现二代身份证号码验证详解
Nov 20 Javascript
JavaScript与HTML的结合方法详解
Nov 23 Javascript
你所未知的3种Node.js代码优化方式
Feb 25 Javascript
JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法
Aug 03 Javascript
JavaScript中无法通过div.style.left获取值的解决方法
Feb 19 Javascript
无循环 JavaScript(map、reduce、filter和find)
Apr 08 Javascript
Vue文件配置全局变量的实例
Sep 06 Javascript
详解VUE单页应用骨架屏方案
Jan 17 Javascript
JS+CSS实现随机点名(实例代码)
Nov 04 Javascript
vue 通过绑定事件获取当前行的id操作
Jul 27 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
setcookie中Cannot modify header information-headers already sent by错误的解决方法详解
2013/05/08 PHP
php根据用户语言跳转相应网页
2015/11/04 PHP
详解PHP处理密码的几种方式
2016/11/30 PHP
利用javascript中的call实现继承
2007/01/22 Javascript
经常用的图片在容器中的水平垂直居中实例
2007/06/10 Javascript
javascript firefox 自动加载iframe 自动调整高宽示例
2013/08/27 Javascript
JavaScript函数模式详解
2014/11/07 Javascript
jQuery学习笔记之创建DOM元素
2015/01/19 Javascript
JQuery实现简单的图片滑动切换特效
2015/11/22 Javascript
动态设置form表单的action属性的值的简单方法
2016/05/25 Javascript
Javascript之Math对象详解
2016/06/07 Javascript
浅析Bootstrap验证控件的使用
2016/06/23 Javascript
如何处理JSON中的特殊字符
2016/11/30 Javascript
详解探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用
2017/06/16 Javascript
js实现同一个页面,多个enter事件绑定的示例
2018/10/10 Javascript
javascript使用Blob对象实现的下载文件操作示例
2020/04/18 Javascript
[00:58]他们到底在电话里听到了什么?
2017/11/21 DOTA
用python实现的去除win下文本文件头部BOM的代码
2013/02/10 Python
Python语言实现将图片转化为html页面
2017/12/06 Python
分析经典Python开发工程师面试题
2019/04/08 Python
python实现QQ空间自动点赞功能
2019/04/09 Python
使用Flask-Cache缓存实现给Flask提速的方法详解
2019/06/11 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
2020/03/10 Python
django之导入并执行自定义的函数模块图解
2020/04/01 Python
python实现控制台输出彩色字体
2020/04/05 Python
巴西图书和电子产品购物网站:Saraiva
2017/06/07 全球购物
菲律宾优惠券网站:MetroDeal
2019/04/12 全球购物
酒店管理专业学生求职信
2013/09/27 职场文书
四年级下册教学反思
2014/02/01 职场文书
大四自我鉴定
2014/02/08 职场文书
青年志愿者活动总结
2014/04/26 职场文书
优秀教师感人事迹材料
2014/05/04 职场文书
民主评议党员总结
2014/10/20 职场文书
2014幼儿园卫生保健工作总结
2014/12/05 职场文书
领导干部学习心得体会
2016/01/23 职场文书
Python 的 sum() Pythonic 的求和方法详细
2021/10/16 Python