测试例子中的 css
<script src="../../jquery-1.7.2.js"></script> <style type="text/css"> body{ padding:0px; margin:0px; } body div{ border:1px solid black; } .main{ width:100%; float:left; margin:2px 0px; } .main .floatLeft{ width:200px; height:100px; float:left; background-color: yellow; } .main .floatRight{ width:200px; height:100px; float:left; } .main .btn_move{ float:left; margin:4px 10px; } </style>
实例1 有很多时候需要动画处理中夹杂着 位置变化等等,这时候通常我们会将动画函数和位置变化等函数连接到一起使用,这时候我们得到的动画并不是我们想要的
例子 : 一个div在两个div中切换 ,
正确结果: 想实现的结果 第一次单击 movediv 左边隐藏 转移到右边 然后显示出来 ,
错误结果:可是 结果却是 div 先转到右侧然后 执行隐藏,然后显示
出现错误结果原因://jquery 默认将动画函数放到 queue中名字是fx ,其他的normal(例如:appendTo)函数不放在queue中 并且会在queue之前执行。
<!--例子1 动画测试1
正确结果: 想实现的结果 第一次单击 movediv 左边隐藏 转移到右边 然后显示出来 ,
错误结果:可是 结果却是 div 先转到右侧然后 执行隐藏,然后显示
原因:jquery 默认将动画函数放到 queue中名字是fx ,其他的normal(例如:appendTo)函数不放在queue中
并且会在queue之前执行。
解决:将appendTo放到queue中 注意queue中必须是使用dequeue ,这样后面的动画才能继续播放
-->
<div class="main" id="main">
<div id="floatLeft" class="floatLeft">
<div id="moveDiv">float Left div </div>
</div>
<div class="btn_move"><button id="move">move</button></div>
<div id="floatRight" class="floatRight">
</div>
</div>
//例子一的封装 方法 function Animal1(){ //例子1 错误实现 this.wrongExample = function (){ $('#move').toggle(function(){ $('#moveDiv').hide('slow').appendTo('#floatRight').show('slow'); },function(){ $('#moveDiv').hide('slow').appendTo('#floatLeft').show('slow'); }); } //例子1正确实现 queue使用 this.rightExample = function (){ $('#move').toggle(function(){ $('#moveDiv').hide('slow').queue(function(){ $(this).appendTo('#floatRight'); jQuery.dequeue( this ); // }).show('slow'); },function(){ $('#moveDiv').hide('slow').queue(function(){ $(this).appendTo('#floatLeft'); jQuery.dequeue(this); }).show('slow'); }); } } var animal1 = new Animal1(); //animal1.rightExample(); //这个是使用queue的,动画会按照正常的效果展示 //animal1.wrongExample(); //这个是未使用queue的,动画顺序错误 ,会先执行appendTo 然后在执行其他动画。
实例2 可以用动画的回调函数来代替queue ,调整动画执行顺序、
<!-- 动画测试2 queue div 隐藏 - 变色 - 显示 --> <div class="main" id="main2" > <div id="changeDiv" style="width:100px;height:100px;background-color:purple; "> div slide up and down animal </div> </div>
//回调函数 queue两种实现方式 function Animal2(){ //用queue 执行 this. example2Queue = function(){ $('#changeDiv').slideUp('slow').queue(function(){ $(this).css('background-color','red'); jQuery.dequeue(this); }).slideDown('slow');; } //用callback执行 this. example3Callback = function(){ $('#changeDiv').slideUp('slow',function(){ $(this).css('background-color','green'); jQuery.dequeue(this); }).slideDown('slow');; } } var animal2 = new Animal2(); //animal2.example2Queue(); //animal2.example3Callback();
实例3 自定义queue使用
<!-- 自定义 queue 实现动画 --> <div class="main" id="main3" > <div id="changeDiv3" style="width:100px;height:100px;background-color:purple; "> div slide up and costum queue </div> </div>
// 自定义 queue 实现 ;
function Animal3(){
// 要使queue 执行 最后面的 dequeue必须有
this.exampleCusQueue = function(){
$('#changeDiv3').queue('customQueue',function(){
//alert('already excute');
$(this).css('background-color','#999900');
jQuery.dequeue(this);
}).dequeue('customQueue');
}
}
var animal3 = new Animal3();
animal3.exampleCusQueue();
实例4 解决不同阶段,动画效果不同
物体整体以40px移动,但前1s透明效果不变,后1s逐渐透
下面例子中 changeDiv4 是将动画分成两部分执行的
动画 changeDiv5是自定义queue 1)整个过程物体移动以40px速度 2)自定义queue透明效果,但延迟1s执行
<!-- complax animal result --> <div id="changeDiv4" style="width:100px;height:100px;background-color:purple; position: absolute;top: 600px;left: 500px"> auto move1 </div> <!-- complax animal result --> <div id="changeDiv5" style="width:100px;height:100px;background-color: #CCFF00; position: absolute;top: 600px;left: 700px"> auto move1 </div>
// 动画 前1秒 只是位置变化, 后一秒位置和透明度变化 $('#changeDiv4').animate({top:'-=20'}, {duration: 1000}).animate({opacity: 0, top: "-=20"}, {duration: 1000}); // 用queue 和delay 处理 两段不同动画 //注意 queue: false 标识这个队列中的动画不加入到默认的队列中,加入这个参数则两个动画可以同时执行 ,即在移动的同时 透明 度变化 $('#changeDiv5').delay(1000,'move').queue('move',function(){ $(this).animate({opacity:0},{duration:1000,queue: false}); }).dequeue('move').animate({top:"-=20"},{duration:2000} ); //$("#changeDiv4").animate({opacity: 0, top: "-=40"}, {duration: 2000});
实例5 1) 创建一个循环执行的动画 2)计算queue中未执行动画的个数
相应的html代码段
<!-- it will be run always --> <div id="changeDiv6" style="width:100px;height:100px;background-color:#FFCC00; position: absolute;top: 400px;left: 200px"> click me and i can count the animate </div>
循环执行的动画
//回调函数写自己 则这个动画一直在运行 function runAniItSelf(){ $('#changeDiv6').slideToggle('slow') .slideToggle('3000') .animate({left:"+=200px"},{duration:3000}) .hide('3000') .show('3000') .animate({left:"-=200px"},3000,'swing',runAniItSelf ); } runAniItSelf();
添加单击事件来计算queue中未执行动画的个数
$('#changeDiv6').click(function(){ var $queue=$("#changeDiv6").queue('fx'); //得到queue var $length=$('#changeDiv6').queue('fx').length; alert( $length ); });
附件中是例子:
相关推荐
《jQuery经典实例60例-动画实例》是学习jQuery库中动画效果...在实际项目中,这些jQuery动画实例将大大提升用户体验,增强网站的吸引力。在学习过程中,不断实践和理解每个实例,将有助于更好地掌握jQuery的动画功能。
jQuery动画 - **基本动画**: `fadeIn()`, `fadeOut()`, `slideToggle()`用于创建淡入淡出和滑动效果,`animate()`则可自定义复杂的动画效果,如改变宽度、高度或透明度。 - **速度控制**: 动画可以通过`duration`...
队列在jQuery中扮演着重要角色,它提供了一种有序执行任务的方式,特别适用于处理动画序列和控制执行流程。本文将详细探讨jQuery队列的源码结构、基本使用方法以及源码分析。 1. 源码结构 jQuery的队列功能由`....
适当地使用jQuery动画可以使网站在不同设备和屏幕尺寸下看起来更加流畅。 通过学习和实践这些jQuery动画效果,开发者可以创建出引人入胜的网页和应用程序,提高用户的参与度和满意度。理解如何有效利用jQuery动画,...
2. **jQuery动画处理** - `animate()`函数:jQuery的核心动画方法,可以用于控制CSS属性的平滑过渡,例如`$(element).animate({rotateX: '45deg'}, duration, easing, callback);`。 - `step`回调函数:在动画每...
本文将详细探讨JQuery动画的实现原理,通过对关键知识点的剖析,帮助读者更好地理解和应用JQuery中的动画功能。 #### 二、动画的基本概念 动画的本质是视觉上的变化效果,通过快速连续地展示一系列微小的变化,形成...
本文档将深入探讨jQuery动画的相关知识,从基础到进阶,帮助你掌握这一强大的功能。 一、jQuery 动画基础 jQuery 提供了一系列方便的动画方法,如 `fadeIn()`, `fadeOut()`, `slideToggle()`, `animate()` 等,...
通过上述讲解和示例,我们可以看到queue()方法在处理元素动画队列时的强大功能。无论是查看队列内容、添加或修改队列中的函数,还是与dequeue()方法联合使用,queue()方法都能为开发者提供灵活而强大的控制方式,以...
**jQuery 1.7.1** 是一个历史悠久但仍然具有影响力的JavaScript库,它极大地简化了网页的DOM操作、事件处理、动画制作以及Ajax交互。在2011年发布时,它是jQuery的最新版本,提供了许多增强的功能和性能优化。 **...
jQuery基础笔记-1 jQuery概述 ----------- jQuery是一个JavaScript库,提供了简洁、快速、轻量级的解决方案,用于简化网页开发。它的主要特点是链式调用、隐式迭代、选择器等,可以帮助开发者快速构建动态网页。 ...
jQuery是一个强大的JavaScript库,特别以其简洁的API和丰富的动画效果而闻名。...无论是在网页导航、图片展示还是用户交互上,jQuery动画都是不可或缺的工具。熟练掌握这些技巧,将让你的网页更加生动和引人入胜。
jQuery 是一个广泛使用的JavaScript库,它极大地简化了JavaScript的DOM操作、事件处理、动画设计以及Ajax交互。在2.2.4这个版本中,jQuery 继续保持着其易用性和高效性,为开发者提供了丰富的API和功能。 ## 1. ...
在前端开发领域,jQuery是一个广泛使用的JavaScript库,它极大地简化了JavaScript操作DOM、处理事件、创建动画等功能。"jQuery动画特效大全"这个压缩包显然包含了大量利用jQuery制作的各种动画效果及其源码,对于...
在网页设计领域,jQuery是一个非常流行的JavaScript库,它极大地简化了JavaScript的使用,尤其是对于处理DOM操作、事件处理和动画效果。"jquery插件库-jquery hover鼠标滑过动画导航条.zip"是一个压缩包,其中包含了...
jQuery是一种广泛应用于网页开发的JavaScript库,它极大地简化了JavaScript的DOM操作、事件处理、动画设计和Ajax交互。在这个名为"jQuery文字切换动画效果"的项目中,我们重点关注的是如何利用jQuery来创建吸引人的...
描述中的“超酷jQuery图标排列动画效果”可能涉及到几种常见的jQuery动画技术,比如淡入淡出(`fadeIn()`, `fadeOut()`)、滑动(`slideToggle()`)或者自定义动画。这些动画可能应用于图片的加载、切换或者鼠标悬停事件...
jQuery 是一个广泛使用的JavaScript库,它极大地简化了JavaScript的DOM操作、事件处理、动画制作以及Ajax交互。在本文中,我们将深入探讨jQuery 1.4.1版本的一些核心特性、改进和常用API。 ### 1. 快速入门 jQuery...
队列(Queue)是jQuery处理一系列操作的方式,它允许按照特定顺序执行动画或函数。默认情况下,动画是按顺序加入到名为`fx`的队列中的。如果多个动画被同时调用,它们会依次执行,而不是并行。 ### 3. `$.queue()`...