再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 相关文章推荐
个人总结的一些关于String、Function、Array的属性和用法
Jan 10 Javascript
简易js代码实现计算器操作
Apr 15 Javascript
使用jQuery内容过滤选择器选择元素实例讲解
Apr 18 Javascript
jQuery中andSelf()方法用法实例
Jan 08 Javascript
jquery实现叠层3D文字特效代码分享
Aug 21 Javascript
js 实现数值的千分位及保存小数方法(推荐)
Aug 01 Javascript
JavaScript定义函数_动力节点Java学院整理
Jun 27 Javascript
webpack 样式加载的实现原理
Jun 12 Javascript
vue中使用better-scroll实现滑动效果及注意事项
Nov 15 Javascript
JavaScript如何实现元素全排列实例代码
May 14 Javascript
JavaScript使用表单元素验证表单的示例代码
Aug 20 Javascript
基于Vue.js+Nuxt开发自定义弹出层组件
Oct 09 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函数array_flip()在重复数组元素删除中的作用
2013/06/27 PHP
聊聊 PHP 8 新特性 Attributes
2020/08/19 PHP
用JS实现一个页面多个css样式实现
2008/05/29 Javascript
JavaScript 页面编码与浏览器类型判断代码
2010/06/03 Javascript
jQuery中的bind绑定事件与文本框改变事件的临时解决方法
2010/08/13 Javascript
jQuery判断当前点击的是第几个li的代码
2014/09/26 Javascript
做web开发 先学JavaScript
2014/12/12 Javascript
Nodejs学习笔记之Stream模块
2015/01/13 NodeJs
jQuery中noconflict函数的实现原理分解
2015/02/03 Javascript
js图片轮播效果实现代码
2020/04/18 Javascript
JQuery点击行tr实现checkBox选中的简单实例
2016/05/26 Javascript
多功能jQuery树插件zTree实现权限列表简单实例
2016/07/12 Javascript
JavaScript易错知识点整理
2016/12/05 Javascript
bootstrapValidator表单验证插件学习
2016/12/30 Javascript
微信小程序利用swiper+css实现购物车商品删除功能
2019/03/06 Javascript
微信小程序Echarts覆盖正常组件问题解决
2019/07/13 Javascript
浅谈Vue.js之初始化el以及数据的绑定说明
2019/11/14 Javascript
Angular value与ngValue区别详解
2019/11/27 Javascript
python寻找list中最大值、最小值并返回其所在位置的方法
2018/06/27 Python
Python 查找list中的某个元素的所有的下标方法
2018/06/27 Python
Python使用pickle模块实现序列化功能示例
2018/07/13 Python
python pyenv多版本管理工具的使用
2019/12/23 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
2020/01/20 Python
Python使用文件操作实现一个XX信息管理系统的示例
2020/07/02 Python
Python wordcloud库安装方法总结
2020/12/31 Python
python正则表达式re.match()匹配多个字符方法的实现
2021/01/27 Python
浅谈HTML5 Web Worker的使用
2018/01/05 HTML / CSS
美国首屈一指的礼品篮供应商:GiftTree
2018/01/06 全球购物
幼儿园招生广告
2014/03/19 职场文书
语文课外活动总结
2014/08/27 职场文书
学校组织向国旗敬礼活动方案(中小学适用)
2014/09/27 职场文书
一年级语文教学随笔
2015/08/14 职场文书
2016年庆祝六一儿童节活动总结
2016/04/06 职场文书
springboot集成springCloud中gateway时启动报错的解决
2021/07/16 Java/Android
Mysql忘记密码解决方法
2022/02/12 MySQL
VUE递归树形实现多级列表
2022/07/15 Vue.js