jQuery中animate的几种用法与注意事项


Posted in Javascript onDecember 12, 2016

一、animate语法结构

animate(params,speed,callback)

params:一个包含样式属性及值的映射,比如{key1:value1,key2:value2}

speed:速度参数[可选]

callback:在动画完成时执行的函数[可选]

二、自定义简单动画

用一个简单例子来说明,实现单击某div在页面上横向飘动的效果。

<style>
 #cube{
  position:relative;/* 不加这句元素不能动 */
  width:30px;
  height:30px;
  background:red;
  cursor:pointer;
 }
</style>
<body>
 <div>
  <div id="cube"></div>
 </div>
 <script>
  $(function(){
   $("#cube").click(function(){
    $(this).animate({left:"100px"},2000)
   })
  })
 </script>

为了使元素动起来,要改变left属性。为了能影响元素top、right、bottom、left属性值必须声明元素的position。

jQuery中animate的几种用法与注意事项
演示效果

三、累加、累减动画

在之前的代码中,设置了{left:"100px"}这个属性作为参数,如果改写为{left:"+=25px"} ,效果如下

jQuery中animate的几种用法与注意事项
演示效果

四、多重动画

同时执行多个动画

上面的例子是一个很简单的动画。如果想同时执行多个动画,比如在元素向右滑动的同时,放大元素高度。

代码如下:

$(this).animate({left:"+=25px",height:"+=20px"},1000)

jQuery中animate的几种用法与注意事项

演示效果

五、按顺序执行多个动画

上例中,向右滑动与高度变大是同时发生的,如果想让方块先向右滑动再变高,只需将代码拆分

如下:

$(this).animate({left:"+=25px"},500)
  .animate({height:"+=20px"},500)

像这样的动画效果的执行有先后顺序,称为“动画队列”

jQuery中animate的几种用法与注意事项
演示效果

六、综合示例

单击方块,让他向右移动的同时增高,不透明度从50%增加到100%,之后上下移动,加宽,完成后淡出。

$("#cube").click(function(){
    $(this).animate({left:"100px",height:"100px",opacity:"1"},500)
    .animate({top:"40px",width:"100px"},500)
    .fadeOut('slow')
   })

为同一元素应用多重效果时可以通过链式方式对这些效果进行排队。

jQuery中animate的几种用法与注意事项
演示效果

七、动画回调函数

在上例中,如果想在最后一步切换css样式(background:blue),而不是淡出,如果按照通常处理,相关代码如下:

$("#cube").click(function(){
    $(this).animate({left:"100px",height:"100px",opacity:"1"},500)
    .animate({top:"40px",width:"100px"},500)
    .css("border","5px solid blue")//改动这行
   })

然而,css()方法被提前调用。

jQuery中animate的几种用法与注意事项
演示效果

引起这个问题的原因是,css()方法不会加入到动画队列中,而是立即执行。可以使用回调函数对非动画方法实现排队。

正确的相关代码如下:

$("#cube").click(function(){
    $(this).animate({left:"100px",height:"100px",opacity:"1"},500)
    .animate({top:"40px",width:"100px"},500,function(){
     $(this).css("border","5px solid blue")
    })
   })

jQuery中animate的几种用法与注意事项

演示效果

值得注意的是,callback适用于jquery所有的动画方法,比如slidDown() ,show()等。

总结

以上就是关于jquery中animate的几种用法和注意事项,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
ListBox实现上移,下移,左移,右移的简单实例
Feb 13 Javascript
javascript实现显示和隐藏div方法汇总
Aug 14 Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
Dec 24 Javascript
ajax异步请求详解
Jan 06 Javascript
用file标签实现多图文件上传预览
Feb 14 Javascript
DOM事件探秘篇
Feb 15 Javascript
canvas压缩图片转换成base64格式输出文件流
Mar 09 Javascript
基于Jquery Ajax type的4种类型(详解)
Aug 02 jQuery
JS实现的简单标签点击切换功能示例
Sep 21 Javascript
微信小程序动态显示项目倒计时
Jun 20 Javascript
JS变量提升及函数提升实例解析
Sep 03 Javascript
JavaScript 原型与原型链详情
Nov 02 Javascript
Websocket协议详解及简单实例代码
Dec 12 #Javascript
jQuery中值得注意的trigger方法浅析
Dec 12 #Javascript
jQuery实现字符串全部替换的方法
Dec 12 #Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
Dec 12 #Javascript
简单实现jquery焦点图
Dec 12 #Javascript
javascript中setAttribute兼容性用法分析
Dec 12 #Javascript
jQuery焦点图左右转换效果
Dec 12 #Javascript
You might like
用PHP调用Oracle存储过程的方法
2008/09/12 PHP
php文件操作之小型留言本实例
2015/06/20 PHP
PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
2018/03/15 PHP
PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例
2019/03/01 PHP
JQuery 构建客户/服务分离的链接模型中Table中的排序分析
2010/01/22 Javascript
JS中confirm,alert,prompt函数使用区别分析
2010/04/01 Javascript
Javascript 网页黑白效果实现代码(兼容IE/FF等)
2010/04/23 Javascript
window.open打开页面居中显示的示例代码
2013/12/27 Javascript
jQuery中height()方法用法实例
2014/12/24 Javascript
JavaScript中的console.time()函数详细介绍
2014/12/29 Javascript
Boostrap入门准备之border box
2016/05/09 Javascript
总结JavaScript设计模式编程中的享元模式使用
2016/05/21 Javascript
javascript实现瀑布流动态加载图片原理
2016/08/12 Javascript
win系统下nodejs环境安装配置
2017/05/04 NodeJs
react-router中的属性详解
2017/06/01 Javascript
详解webpack介绍&amp;安装&amp;常用命令
2017/06/29 Javascript
微信web端后退强制刷新功能的实现代码
2018/03/04 Javascript
VUE中使用MUI方法
2019/02/12 Javascript
JavaScript实现星级评价效果
2019/05/17 Javascript
[02:45]2016年中国刀塔全程回顾,完美“圣”典即将上演
2016/12/15 DOTA
Python3访问并下载网页内容的方法
2015/07/28 Python
Python图算法实例分析
2016/08/13 Python
浅析Python 简单工厂模式和工厂方法模式的优缺点
2020/07/13 Python
基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算
2020/08/05 Python
如何在网站上添加谷歌定位信息
2016/04/16 HTML / CSS
AmazeUI 评论列表的实现示例
2020/08/13 HTML / CSS
亚历山大·王官网:Alexander Wang
2017/06/23 全球购物
ONLY德国官方在线商店:购买时尚女装
2017/09/21 全球购物
Kipling意大利官网:世界著名的时尚休闲包袋品牌
2019/06/05 全球购物
CHARLES & KEITH加拿大官网:新加坡时尚品牌
2020/03/26 全球购物
C++:局部变量能否和全局变量重名
2014/03/03 面试题
司法助理专业自荐书
2014/06/13 职场文书
产品陈列协议书(标准版)
2014/09/17 职场文书
销售员态度差检讨书
2014/10/26 职场文书
使用canvas实现雪花飘动效果的示例代码
2021/03/30 HTML / CSS
css position fixed 左右双定位的实现代码
2021/04/29 HTML / CSS