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
  • 相关阅读:
    P3973 [TJOI2015]线性代数
    P3168 [CQOI2015]任务查询系统
    二次剩余学习笔记
    URL注入攻击+知识星球资源整理
    我的网络安全架构知识点的总结(待完善)
    Sudo提权
    DNSlog平台各种利用姿势(盲注)
    Wireshark抓包理论加实操
    Fofa搜索技巧(理论加实践的整理)
    Windows留后门维持权限(其中包括详细的telnet改端口与连接)
  • 原文地址:https://www.cnblogs.com/fly_dragon/p/7979795.html
Copyright © 2011-2022 走看看