jQuery篇之操作jQuery对象(动画)

目录
    1. 隐藏/显示/来回切换显示隐藏
    2. 淡入/淡出/来回切换淡入淡出/淡出到指定透明度
    3. 下滑/上滑/来回切换上下滑
    4. animate 自定义动画
  1. 隐藏/显示/来回切换显示隐藏

hide(隐藏)
默认执行动画会改变元素的宽度、高度、透明度

    $("#p2").hide();
    $("#p2").hide({
                duration: 3000,  // "slow"、"fast" 或毫秒 
                complete: function() {
                    alert('执行3000ms动画完毕')
                }
            })
    $("p").hide(1000,function(){  // ms
      alert("The paragraph is now hidden 动画完毕");
    });
静态的隐藏方式(设置属性)
    改变样式display为none(一般)
    设置位置高度为0
    设置透明度为0

注意:
    1. jQuery进行hide时,会保存本身的元素的原始属性值,再之后通过对应的方法还原为初始值。比如一个元素的display属性值为inline,一旦透明度 达到0,display样式属性将被设置为none(这个元素将不再在页面中影响布局),隐藏再显示时这个元素将再次显示inline。
    2. show与hide方法本质是修改的display属性。
    3. 如果在样式中使用了!important,比如display: none !important,想要show()方法正常工作,必须使用.css('display', 'block !important')重写样式

show(显示)

显示(用法同hide)
    $("p").show();

toggle(来回切换显示隐藏)

来回切换显示隐藏(用法同hide)
    通过改变CSS的display属性
    匹配的元素将被立即显示或隐藏,没有动画。
    $("p").toggle();
    $("p").toggle(inline);

 注意:
    display属性将被储存并且需要的时候可以恢复。如果一个元素的display值为inline,然后是隐藏和显示,这个元素将再次显示inline
    动态效果为从右至左。横向动作,通过display来判断切换所有匹配元素的可见性
  1. 淡入/淡出/来回切换淡入淡出/淡出到指定透明度

fadeIn(淡入)

淡入
    仅影响透明度,高度和宽度不会发生变化
    $("#p").fadeIn();
    $("#p").fadeIn(1000);
    $("#p").fadeIn(1000, "linear");
    $("#p").fadeIn(1000, function() {
       alert("动画执行完毕!");
    });
    $("#p").fadeIn({
        duration: 1000       
    });

fadeOut(淡出)

淡出(用法同fadeIn)
    $("#div1").fadeOut();

fadeToggle(来回切换淡入淡出)

来回切换淡入淡出(用法同fadeIn)
    $("#div1").fadeToggle();

fadeTo(淡出到指定透明度)

淡出到指定透明度
    $("p").fadeTo("slow", 0.5);
    $("p").fadeTo("slow", 0.5, function() {
        alert('完成')
    });
  1. 下滑/上滑/来回切换上下滑

slideDown(下滑)

下滑
    $("#p").slideDown();
    $("#p").slideDown(1000);
    $("#p").slideDown(1000, function() {
      // 动画执行完毕后
    });

注意:
    下拉动画是从无到有,所以一开始元素是需要先隐藏起来的,可以设置display:none
     'fast' 和 'slow' 分别代表200和600毫秒的延时,默认400ms。

slideUp(上滑)

上滑(用法同slideDown)
    $("#p").slideUp();

本质:找到元素的高度,然后采用一个下滑动画让元素一直滑到隐藏,当高度为0的时候,也就是不可见的时,修改元素display 样式属性被设置为none。

slideToggle(来回切换上下滑)

来回切换上下滑(用法同slideDown)
    $("#p").slideToggle();

注意:
    display属性值保存在jQuery的数据缓存中,所以display可以方便以后可以恢复到其初始值
    当一个隐藏动画后,高度值达到0的时候,display 样式属性被设置为none,以确保该元素不再影响页面布局
    动态效果从下至上。竖向动作,通过高度变化来切换所有匹配元素的可见性
  1. animate 自定义动画
.animate( properties ,[ duration ], [ easing ], [ complete ] )
.animate( properties, options )  // 第二个参数到最后一个参数使用字典格式

说明:
    1、properties
        一个或多个css属性的键值对所构成的Object对象。所有用于动画的属性必须是数字的:比如常见的,border、margin、padding、width、height、font、left、top、right、bottom、wordSpacing。
        属性值的默认单位像素(px)。
        除了定义数值,每个属性能使用'show', 'hide', 和 'toggle'
        使用驼峰形式,而不是-
    2、options
        duration : 执行的时间
        easing: easing 缓动函数
        step:每一步动画时调用
        progress:每一步动画完成后调用
        complete:动画完成回调
方式一(举例)
            $aaron.animate({
                width  :300,
                height :300
            });

            $aaron.animate({
                 width  : "+=100px",
                 height : "+=100px"
            });

            $aaron.animate({
                left: 50, 
                width: '50px'   
                opacity: 'show',  
                fontSize: "10em",
            }, 500);

            $aaron.animate({
                fontSize: "5em"
            }, 2000, function() {
                alert("动画 fontSize执行完毕!");
            });

方式二(举例)

            $('#elem').animate({
              width: 'toggle',  
              height: 'toggle'
            }, {
              duration: 5000,
              specialEasing: {
                width: 'linear',
                height: 'easeOutBounce'
              },
              complete: function() {
                $(this).after('<div>Animation complete.</div>');
              }
            });

            $aaron.animate({
                height: '50'
            }, {
                duration :2000,
                step: function(now, fx) {
                   $aaron.text('高度的改变值:'+now)
                },
                progress: function(now, fx) {
                }
            })

stop

.stop( [clearQueue ], [ jumpToEnd ] )
.stop( [queue ], [ clearQueue ] ,[ jumpToEnd ] )

    // 停止当前动画,如果队列中有其他动画,执行第二个动画。
    $aaron.stop()
    // 停止所有动画。
    $aaron.stop(true)
    // 停止所有动画,并立即变为第一个动画的结束状态。
    $aaron.stop(true,true)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • jQuery中隐藏元素的hide方法 让页面上的元素不可见,一般可以通过设置css的display为none属性。...
    阿r阿r阅读 4,879评论 0 4
  • 隐藏元素的hide方法 让页面上的元素不可见,一般可以通过设置css的display为none属性。但是通过css...
    老夫撩发少年狂阅读 4,768评论 0 2
  • 第1章 动画基础隐藏和显示 1-1 jQuery中隐藏元素的hide方法 让页面上的元素不可见,一般可以通过设置c...
    mo默22阅读 4,168评论 0 8
  • (续jQuery基础(2)) 四、动画篇 第1章 动画基础隐藏和显示 (1)隐藏元素的hide方法 让页面上的元素...
    凛0_0阅读 3,258评论 0 6
  • 这或许—— 这或许不应该开口道别离, 你我故事添些曲折或许对各自人生会更好, 只要你记得住我曾对你的深情许许, 后...
    安娜的花儿阅读 793评论 0 2