再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 相关文章推荐
Javascript Global对象
Aug 13 Javascript
基于jquery的超简单上下翻
Apr 20 Javascript
jQuery表单域属性过滤器用法分析
Feb 10 Javascript
浅谈js里面的InttoStr和StrtoInt
Jun 14 Javascript
JS中动态创建元素的三种方法总结(推荐)
Oct 20 Javascript
使用JS读取XML文件的方法
Nov 25 Javascript
vue-cli webpack2项目打包优化分享
Feb 07 Javascript
Mint UI实现A-Z字母排序的城市选择列表
Dec 28 Javascript
深入理解Vue keep-alive及实践总结
Aug 21 Javascript
layui复选框的全选与取消实现方法
Sep 02 Javascript
vue路由的配置和页面切换详解
Sep 09 Javascript
使用vant的地域控件追加全部选项
Nov 03 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
在线增减.htpasswd内的用户
2006/10/09 PHP
php header Content-Type类型小结
2011/07/03 PHP
thinkphp3.2实现上传图片的控制器方法
2016/04/28 PHP
Yii2.0实现生成二维码功能实例
2017/10/24 PHP
PHP序列化和反序列化深度剖析实例讲解
2020/12/29 PHP
基于jquery实现的上传图片及图片大小验证、图片预览效果代码
2011/04/12 Javascript
js constructor的实际作用分析
2011/11/15 Javascript
JavaScript静态类型检查工具FLOW简介
2015/01/06 Javascript
nodejs实现bigpipe异步加载页面方案
2016/01/26 NodeJs
jQuery Ajax 实例代码 ($.ajax、$.post、$.get)
2016/04/29 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
2016/08/08 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
2017/04/29 jQuery
Nodejs 和Session 原理及实战技巧小结
2017/08/25 NodeJs
jQuery判断网页是否已经滚动到浏览器底部的实现方法
2017/10/27 jQuery
axios中cookie跨域及相关配置示例详解
2017/12/20 Javascript
简单的Vue SSR的示例代码
2018/01/12 Javascript
JavaScript中this的全面解析及常见实例
2019/05/14 Javascript
微信小程序自定义单项选择器样式
2019/07/25 Javascript
vue父组件给子组件的组件传值provide inject的方法
2019/10/23 Javascript
Python中os和shutil模块实用方法集锦
2014/05/13 Python
Python生成随机验证码的两种方法
2015/12/22 Python
python保存网页图片到本地的方法
2018/07/24 Python
python3中os.path模块下常用的用法总结【推荐】
2018/09/16 Python
python matplotlib imshow热图坐标替换/映射实例
2020/03/14 Python
Django中F函数的使用示例代码详解
2020/07/06 Python
python爬虫爬取图片的简单代码
2021/01/18 Python
4s店总经理岗位职责
2013/12/31 职场文书
一份创业计划书范文
2014/02/08 职场文书
党的群众路线教育实践活动查摆问题及整改措施
2014/10/10 职场文书
团员自我评价范文
2015/03/10 职场文书
火烧圆明园的观后感
2015/06/03 职场文书
初中数学教学随笔
2015/08/15 职场文书
公司中层管理培训心得体会
2016/01/11 职场文书
2016年八一建军节活动总结
2016/04/05 职场文书
html form表单基础入门案例讲解
2021/07/15 HTML / CSS
Python matplotlib多个子图绘制整合
2022/04/13 Python