zoukankan      html  css  js  c++  java
  • 05-老马jQuery教程-动画

    前言

    jQuery的动画系统做的非常出色,而且把最常用的显示、隐藏、淡入淡出、滑动显示和折叠凳效果都做了很好的封装。跟jQuery的选择器和事件配合起来,可以实现很多很绚的效果,而且简单易用兼容性好。

    1. 显示动画

    jQuery的原型上的方法 show()方法可以实现让DOM元素进行显示动画。

    • 语法: show([speed,[easing],[fn]])

    • 参数

      • speed:三种预定速度之一的字符串("slow","normal", or "fast")或表示动画时长的毫秒数值(如:1000)
      • fn:在动画完成时执行的函数,每个元素执行一次。
      • easing:(Optional) 用来指定切换效果,默认是"swing",可用参数"linear".可以可以进行扩展,比如参考文章:地址
    • 返回值: jQuery包装对象。

    • 示例

    // 显示所有段落
    // <p style="display: none">Hello</p>
    $("p").show()
    
    // 用缓慢的动画将隐藏的段落显示出来,历时600毫秒。
    // <p style="display: none">Hello</p>
    $("p").show("slow");
    
    // 用迅速的动画将隐藏的段落显示出来,历时200毫秒。并在之后执行反馈!
    // <p style="display: none">Hello</p>
    $("p").show("fast",function(){
       $(this).text("Animation Done!");
     });
    
    // 将隐藏的段落用将近4秒的时间显示出来。。。并在之后执行一个反馈。。。
    // <p style="display: none">Hello</p>
    $("p").show(4000,function(){
       $(this).text("Animation Done...");
     });
    

    2. 隐藏动画

    语法: hide([speed,[easing],[fn]])

    隐藏动画的参数和使用跟show表现一致。在此就不赘述。

    $("p").hide()
    // 用600毫秒的时间将段落缓慢的隐藏
    $("p").hide("slow");
    // 用200毫秒将段落迅速隐藏,之后弹出一个对话框。
    $("p").hide("fast",function(){
       alert("Animation Done.");
     });
    

    3. 下滑显示(slideDown)

    语法:slideUp([speed,[easing],[fn]])

    通过高度变化(向上减小)来动态地隐藏所有匹配的元素,在隐藏完成后可选地触发一个回调函数。这个动画效果只调整元素的高度,可以使匹配的元素以“滑动”的方式隐藏起来。在jQuery 1.3中,上下的padding和margin也会有动画,效果更流畅。

    参数跟show保持一致,不再赘述。

    // 用600毫秒缓慢的将段落滑上
    $("p").slideUp("slow");
    // 用200毫秒快速将段落滑上,之后弹出一个对话框
    $("p").slideUp("fast",function(){
       alert("Animation Done.");
     });
    

    4. 折叠隐藏效果(slideUp)

    语法: slideUp([speed,[easing],[fn]])

    通过高度变化(向上减小)来动态地隐藏所有匹配的元素,在隐藏完成后可选地触发一个回调函数。

    跟slideDown的语法保持一致。参数等不再赘述。

    $("p").slideUp("slow");
    // 用200毫秒快速将段落滑上,之后弹出一个对话框
    $("p").slideUp("fast",function(){
       alert("Animation Done.");
     });
    

    5. 折叠和下拉效果切换方法(toggleSlide)

    语法:slideToggle([speed],[easing],[fn])

    用法跟slideUp和slideDown保持一致。如果元素已经滑上去了,那么执行此方法就会滑下来。

    6. 淡入、淡出效果

    由于淡入淡出的方法跟slide系列的方法保持一致。不赘述。

    语法功能实例
    fadeIn([speed],[easing],[fn]) 淡入效果 $("p").fadeIn("slow");
    fadeOut([speed],[easing],[fn]) 淡出效果 $("p").fadeOut("fast");
    fadeToggle([speed],[easing],[fn]) 切换淡入淡出 $("p").fadeToggle("slow");

    7、设置元素透明度动画

    • 语法:fadeTo([[speed],opacity,[easing],[fn]])

    • 概述

    把所有匹配元素的不透明度以渐进方式调整到指定的不透明度,并在动画完成后可选地触发一个回调函数。这个动画只调整元素的不透明度,也就是说所有匹配的元素的高度和宽度不会发生变化。

    • 参数

      • speed:三种预定速度之一的字符串("slow","normal", or "fast")或表示动画时长的毫秒数值(如:1000)
      • opacity:一个0至1之间表示透明度的数字。
      • easing:(Optional) 用来指定切换效果,默认是"swing",可用参数"linear"
      • fn:在动画完成时执行的函数,每个元素执行一次。
    • 示例

    // 使用淡入效果来显示一个隐藏的 <p> 元素:
    $(".btn2").click(function(){
      $("p").fadeIn();
    });
    // 用600毫秒缓慢的将段落的透明度调整到0.66,大约2/3的可见度
    $("p").fadeTo("slow", 0.66);
    // 用200毫秒快速将段落的透明度调整到0.25,大约1/4的可见度,之后弹出一个对话框
    $("p").fadeTo("fast", 0.25, function(){
       alert("Animation Done.");
     });
    

    8. 自定义动画

    jQuery封装了对css中数值属性的动画效果的封装,可以让开发人员对数值类的属性进行自定义的动画。

    • 语法 animate(params,[speed],[easing],[fn])

    • 参数

      • params:一组包含作为动画属性和终值的样式属性和及其值的集合
      • speed:三种预定速度之一的字符串("slow","normal", or "fast")或表示动画时长的毫秒数值(如:1000)
      • easing:要使用的擦除效果的名称(需要插件支持).默认jQuery提供"linear" 和 "swing".
      • fn:在动画完成时执行的函数,每个元素执行一次。
    • 示例

    // 在一个动画中同时应用三种类型的效果
    $("#go").click(function(){
      $("#block").animate({ 
         "90%",
        height: "100%", 
        fontSize: "10em", 
        borderWidth: 10
      }, 1000 );
    });
    
    // 让指定元素左右移动
    // HTML 代码:
    // <button id="left">«</button> <button id="right">»</button>
    // <div class="block"></div>
    // jQuery 代码:
    $("#right").click(function(){
      $(".block").animate({left: '+50px'}, "slow");
    });
    
    $("#left").click(function(){
      $(".block").animate({left: '-50px'}, "slow");
    });
    
    // 在600毫秒内切换段落的高度和透明度
    $("p").animate({
       height: 'toggle', opacity: 'toggle'
     }, "slow");
    
    // 用500毫秒将段落移到left为50的地方并且完全清晰显示出来(透明度为1)
    $("p").animate({
       left: 50, opacity: 'show'
     }, 500);
    
    // 一个使用“easein”函数提供不同动画样式的例子。只有使用了插件来提供这个“easein”函数,这个参数才起作用。
    jQuery 代码:
    $("p").animate({
       opacity: 'show'
     }, "slow", "easein");
    

    9. 停止动画

    语法:stop([queue],[clearQueue],[jumpToEnd])

    停止所有在指定元素上正在运行的动画。如果队列中有等待执行的动画(并且clearQueue没有设为true),他们将被马上执行

    参数:

    • clearQueue:如果设置成true,则清空队列。可以立即结束动画。

    • jumpToEnd:让当前正在执行的动画立即完成,并且重设show和hide的原始样式,调用回调函数等。

    • queue:用来停止动画的队列名称(v1.7+ 以后版本才添加)

    • 示例

    // 停止当前正在运行的动画:
    $("#stop").click(function(){
      $("#box").stop();
      // 立即结束当前动画,并清空队列。
      $("#box").stop(true, true);
    });
    // 点击Go之后开始动画,点Stop之后会在当前位置停下来
    // <button id="go">Go</button> <button id="stop">STOP!</button>
    // <div class="block"></div><button id="go">Go</button> <button id="stop">STOP!</button>
    // <div class="block"></div>
    // 开始动画
    $("#go").click(function(){
      $(".block").animate({left: '+200px'}, 5000);
    });
    
    // 当点击按钮后停止动画
    $("#stop").click(function(){
      $(".block").stop();
    });
    

    10. 结束动画

    • 语法:finish( [queue ] )

    • 概述

    停止当前正在运行的动画,删除所有排队的动画,并完成匹配元素所有的动画。当.finish()在一个元素上被调用,立即停止当前正在运行的动画和所有排队的动画(如果有的话),并且他们的CSS属性设置为它们的目标值(所有动画的目标值)。所有排队的动画将被删除。如果第一个参数提供,该字符串表示的队列中的动画将被停止。

    .finish()方法和.stop(true, true)很相似,.stop(true, true)将清除队列,并且目前的动画跳转到其最终值。但是,不同的是,.finish() 会导致所有排队的动画的CSS属性跳转到他们的最终值。

    • 参数queue:String类型,停止动画队列中的名称。

    • 示例

    // 停止当前正在运行的动画
    $("#complete").click(function(){
      $("div").finish();
    });
    

    11. 延迟执行

    • 语法:delay(duration,[queueName])

    • 概述

    设置一个延时来推迟执行队列中之后的项目。用于将队列中的函数延时执行。他既可以推迟动画队列的执行,也可以用于自定义队列。

    • 参数

      • duration:延时时间,单位:毫秒
      • queueName:队列名词,默认是Fx,动画队列。
    • 示例

    // 在.slideUp() 和 .fadeIn()之间延时800毫秒。
    // <div id="foo /">
    $('#foo').slideUp(300).delay(800).fadeIn(400);
    

    12. jQuery动画属性设置

    • 关闭页面上所有的动画

      jQuery.fx.off 把这个属性设置为true可以立即关闭所有动画(所有效果会立即执行完毕)

    • 设置动画的显示帧速

      jQuery.fx.interval = 100;


    对应视频地址:https://chuanke.baidu.com/s5508922.html
    老马qq: 515154084
    老马微信:请扫码

     
    微信:Flydragon_malun 或者18911865673
  • 相关阅读:
    【流量劫持】SSLStrip 终极版 —— location 瞒天过海
    【流量劫持】沉默中的狂怒 —— Cookie 大喷发
    【流量劫持】SSLStrip 的未来 —— HTTPS 前端劫持
    Web 前端攻防(2014版)
    流量劫持 —— 浮层登录框的隐患
    流量劫持能有多大危害?
    流量劫持是如何产生的?
    XSS 前端防火墙 —— 整装待发
    XSS 前端防火墙 —— 天衣无缝的防护
    XSS 前端防火墙 —— 无懈可击的钩子
  • 原文地址:https://www.cnblogs.com/fly_dragon/p/7979795.html
Copyright © 2011-2022 走看看