跨平台

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

2019-10-08  本文已影响0人  平安喜乐698
目录
    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

注意:
    jQuery在做hide操作的时候,是会保存本身的元素的原始属性值,再之后通过对应的方法还原的时候还是初始值。比如一个元素的display属性值为inline,那么隐藏再显示时,这个元素将再次显示inline。一旦透明度 达到0,display样式属性将被设置为none,这个元素将不再在页面中影响布局
    show与hide方法本质是修改的display属性。通过visibility属性布局需要通过css方法单独设置。
    如果在样式中使用了!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来判断切换所有匹配元素的可见性

淡入/淡出/来回切换淡入淡出/淡出到指定透明度

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('完成')
    });

下滑/上滑/来回切换上下滑

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,以确保该元素不再影响页面布局
    动态效果从下至上。竖向动作,通过高度变化来切换所有匹配元素的可见性

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)
上一篇 下一篇

猜你喜欢

热点阅读