再JavaScript的jQuery库中编写动画效果的指南


Posted in Javascript onAugust 13, 2015

jquery中常用的动画的方法就是hide()与show().

$(element).hide()这段代码可以与这相等element.css("display","none")

 在hide(time)与show(time)中填入事件,可以慢慢消失跟显现。可以修改元素的多个样式,高度,宽度,不透明度。

另一组方法fadeIn()与fadeOut()这个与hide跟show不同的是,当使用hide或者show的时候会改变网页的高度,而fadeIn与fadeOut则不会。

                $("#panel h5.head").toggle(function(){                    $(this).addClass("highlight");                    $(this).next().fadeOut(1000);                },function(){                    $(this).removeClass("highlight");                    $(this).next("div .content").fadeIn(1000);                });还有一组是slideUp,slideDown改变高度。

动画方法概括

再JavaScript的jQuery库中编写动画效果的指南

动画队列

(1)一组元素上的动画效果。

a)当在一个animate()方法中应用多个属性时,动画是同时发生的。

b)当以链式的写法应用动画方法时,动画是按照顺序发生的。

(2)多组元素上的动画效果

a)默认情况下,动画都是同时发生的。

b)当以回调的形式应用动画方式时,动画是按照回调顺序发生的。

另外,在动画方法中,要注意其他非动画的方法会插队,例如css()方法,要使这些非动画的方法也按照顺序来执行,需要把这些方法写在动画方法的回调函数中。

举一个animate的例子:

$(“#id”).animat({left:”400px”,top:”300px”},3000,function(){


     $(this).css(“border”,”1px solid blue”);


});

若想要动画停止,需要在animate()方法前插入stop()方法

例如:$(“#id”).stop().animate()注意stop中的两个参数。

判断元素是否在动画状态的方法时:

$(element).is(“:animated”);

jQuery 可以很方便的为页面中的元素添加一些动态效果,可以用其内建效果,也可以自己定义效果。

下面是一些内建的效果方法:

  • $.fn.show 显示所选择的元素
  • $.fn.hide 隐藏所选择的元素
  • $.fn.fadeIn 淡入
  • $.fn.fadeOut 淡出
  • $.fn.slideDown 通过垂直滑动的效果来显示元素
  • $.fn.slideUp 通过垂直华东的效果来隐藏元素
  • $.fn.slideToggle 显示滑动或隐藏滑动交互执行

一个简单的例子:

$('h1').show();

设置动画效果的时长

对于 $.fn.show 和 $.fn.hide 而言,默认情况下其时长是 0,其它效果的默认时长一般是 400 毫秒,当然也自己设置时长:

$('h1').fadeIn(300);   // 300 毫秒
$('h1').fadeOut('slow'); // slow 是内建的速度常量

jQuery 默认的速度常量都位于 jQuery.fx.speeds 对象中:

speeds: {
  slow: 600,
  fast: 200,
  // Default speed
  _default: 400
}

我们也可以扩展这个对象,添加自己常用的速度值:

jQuery.fx.speeds.blazing = 100;
jQuery.fx.speeds.turtle = 2000;

回调函数

如果想在动画效果结束后再执行一些代码,那么可以给这些动画方法换入一个回调函数:

$('div.old').fadeOut(300, function() {
 $(this).remove();
});

如果选择器中没有匹配到任何元素,那么回调函数也不会被执行,所以在执行回调函数前做个判断是有必要的:

var $thing = $('#nonexistent');

var cb = function() {
  console.log('done!');
};

if ($thing.length) {
  $thing.fadeIn(300, cb);
} else {
  cb();
}

自定义动画方法

jQuery 中的 $.fn.animate 方法可以用来扩展我们的自定义动画,主要是通过 animate 方法设置元素 CSS 属性来实现的,设置元素 CSS 属性的时候可以使用绝对值,也可以使用相对值:

$('div.funtimes').animate(
  {
    left : "+=50",
    opacity : 0.25
  },
  300, // 时长
  function() { console.log('done!'); // 回调函数
});

但是,用 $.fn.animate 创建自定义动画效果时,不能改变元素的颜色。如果要创建颜色动画,需要依赖其它一些颜色插件。
动画的风格

jQuery 内建的动画风格有两种:swing 和 linear

$('div.funtimes').animate(
  {
    left : [ "+=50", "swing" ],
    opacity : [ 0.25, "linear" ]
  },
  300
);

控制动画

jQuery 提供了几个方法用来控制动画的执行:

$.fn.stop 停止当前正在执行的动画

$.fn.delay 使动画暂停一段时间:

$('h1').show(300).delay(1000).hide(300);

jQuery.fx.off :关闭动画的过度效果,相当于把时长设为 0。

Javascript 相关文章推荐
Windows Live的@live.com域名注册漏洞 利用代码
Dec 27 Javascript
js和css写一个可以自动隐藏的悬浮框
Mar 05 Javascript
JavaScript弹窗基础篇
Apr 27 Javascript
深入浅析JS的数组遍历方法(推荐)
Jun 15 Javascript
jquery层级选择器的实现(匹配后代元素div)
Sep 05 Javascript
快速入门Vue
Dec 19 Javascript
vue-cli项目中使用Mockjs详解
May 14 Javascript
Vue引用Swiper4插件无法重写分页器样式的解决方法
Sep 27 Javascript
小程序视频或音频自定义可拖拽进度条的示例代码
Sep 30 Javascript
layui 实现表格某一列显示图标
Sep 19 Javascript
Vue脚手架编写试卷页面功能
Mar 17 Javascript
Vuejs通过拖动改变元素宽度实现自适应
Sep 02 Javascript
js实现仿网易点击弹出提示同时背景变暗效果
Aug 13 #Javascript
JavaScript生成SQL查询表单的方法
Aug 13 #Javascript
对于jQuery性能的一些优化建议
Aug 13 #Javascript
使用控制台破解百小度一个月只准改一次名字
Aug 13 #Javascript
js实现文本框宽度自适应文本宽度的方法
Aug 13 #Javascript
理解和运用JavaScript的闭包机制
Aug 13 #Javascript
详解JavaScript中jQuery和Ajax以及JSONP的联合使用
Aug 13 #Javascript
You might like
用PHP和ACCESS写聊天室(五)
2006/10/09 PHP
php文件上传及下载附带显示文件及目录功能
2017/04/27 PHP
PHP实现PDO操作mysql存储过程示例
2019/02/13 PHP
用CSS+JS实现的进度条效果效果
2007/06/05 Javascript
用js实现控制内容的向上向下滚动效果
2007/06/26 Javascript
JS backgroundImage控制
2009/05/19 Javascript
纯Javascript实现Windows 8 Metro风格实现
2013/10/15 Javascript
前端开发过程中浏览器版本的两种判定方法
2013/10/30 Javascript
JavaScript生成验证码并实现验证功能
2016/09/24 Javascript
js判断文件格式及大小的简单实例(必看)
2016/10/11 Javascript
使用grunt合并压缩js和css文件的方法
2017/03/02 Javascript
Angular获取手机验证码实现移动端登录注册功能
2017/05/17 Javascript
详解刷新页面vuex数据不消失和不跳转页面的解决
2018/01/30 Javascript
详解自定义ajax支持跨域组件封装
2018/02/08 Javascript
深入了解javascript 数组的sort方法
2018/06/01 Javascript
详解Vue中使用Echarts的两种方式
2018/07/03 Javascript
python 3.5下xadmin的使用及修复源码bug
2017/05/10 Python
Python-copy()与deepcopy()区别详解
2019/07/12 Python
Python pip 安装与使用(安装、更新、删除)
2019/10/06 Python
没编程基础可以学python吗
2020/06/17 Python
matplotlib图例legend语法及设置的方法
2020/07/28 Python
使用javascript和HTML5 Canvas画的四渐变色播放按钮效果
2014/04/10 HTML / CSS
日本高岛屋百货购物网站:TAKASHIMAYA
2019/03/24 全球购物
网吧消防安全制度
2014/01/28 职场文书
信息与计算机科学职业规划范文:成为一艘有方向的船
2014/09/11 职场文书
机械设计专业大学生职业生涯规划书范文
2014/09/13 职场文书
2014年庆祝国庆65周年演讲稿
2014/09/21 职场文书
企业三严三实学习心得体会
2014/10/13 职场文书
毕业生个人总结
2015/02/28 职场文书
2015年幼儿园教研活动总结
2015/03/25 职场文书
诚信考试承诺书范文
2015/04/29 职场文书
导盲犬小Q观后感
2015/06/11 职场文书
初中政教处工作总结
2015/08/12 职场文书
五年级作文之想象作文
2019/10/30 职场文书
MySQL中datetime时间字段的四舍五入操作
2021/10/05 MySQL
vue报错function () { [native code] },无法出现我们想要的内容 Unknown custom element
2022/04/11 Vue.js