jQuery 动画篇

本文详细介绍了jQuery中的动画效果,包括hide/show/toggle方法、slideDown/slideUp/slideToggle实现的上卷下拉效果、fadeIn/fadeOut/fadeToggle的淡入淡出动画,以及自定义动画animate和动画控制技巧。还提到了jQuery核心中的each方法、inArray、trim、get及index等实用功能。
摘要由CSDN通过智能技术生成

1、动画基础隐藏和显示(show与hide方法是修改的display属性,通过是visibility属性布局需要通过css方法单独设置

(1)隐藏元素的hide方法

快捷参数:

.hide("fast / slow") 'fast' 和 'slow' 分别代表200和600毫秒的延时,就是元素会执行200/600毫秒的动画后再隐藏

方法一
<script type="text/javascript">
    //点击buttom1 执行动画隐藏
    $("button:first").click(function() {
          $("#a2").hide({
                duration: 3000,
                complete: function() {
                alert('执行3000ms动画完毕')
                }
          })
    });
</script>
方法二
<script type="text/javascript">
    //点击buttom2 执行动画隐藏
    $("button:last").click(function() {
        $("#a1").hide(3000,function(){
            alert('执行3000ms动画完毕')
        })
    });
</script>

(2)显示元素的hide方法


   
   
hide-show
<script type="text/javascript"> //点击button //执行3秒隐藏 //执行3秒显示 $("button").click(function() { $("#a1").hide(3000).show(3000) }); </script>

(3)显示与隐藏切换toggle方法

//.left  .right 为两个div块

<script type="text/javascript">
    $("button:first").click(function() {
        $(".left").toggle(3000)
    });
</script>

<script type="text/javascript">
    $("button:last").click(function() {
        $(".right").toggle(3000)
    });
</script>

2、上卷下拉效果

(1)下拉动画slideDown  (      slideDown(fast)       slideDown(slow)           )

基本操作:$("ele").slideDown()

执行回调:$("ele").slideDown(1000, function() { //等待动画执行1秒后,执行别的动作.... });

(2)上卷动画slideUp(用法同slideDown一样)

(3)上卷下拉切换slideToggle


    
    
<script type="text/javascript"> //点击button //执行3秒隐藏 //执行3秒显示 $("button:last").click(function() { $("#a1").slideToggle('fast',function(){ alert('动画执行结束') }) }); </script>

3、淡入淡出效果(淡入淡出fadeIn与fadeOut都是修改元素样式的opacity属性变化的区间要么是0,要么是1

(1)淡出动画fadeOut(fadeOut()函数用于隐藏所有匹配的元素,并带有淡出的过渡动画效果)

  • .fadeOut("slow / fast");   /  .fadeOut(1000);   / .fadeOut(1000,"linear"); 这里的linear是指动画的行进速度方法(easing),顾名思义就是淡出的速度保持恒定的线性速度。而jQuery 核心默认的easing为swing,行进速度在动画开始和结束时比在动画中间时稍慢。)

  • .fadeOut(2000, function () { });

  • .fadeOut( { duration: 1000 });

(2)淡入动画fadeIn(fadeIn()函数用于显示所有匹配的元素,并带有淡入的过渡动画效果

(用法与fadeOut一致)

(3)淡入淡出切换fadeToggle(fadeToggle()函数用于切换所有匹配的元素,并带有淡入/淡出的过渡动画效果)

(4)淡入效果fadeTo(让元素保持动画效果,执行opacity  不为0或1时的效果)

fadeTo

测试文字透明度效果

测试测试

透明度的设置效果: <script type="text/javascript"> //【切换显示/隐藏】按钮 $("#a").click(function() { var v = $("#animation").val(); if (v == "1") { $("p").fadeTo("slow", 0.5); } else if (v == "2") { $("p").fadeTo(1000, 0.2); } else if (v == "3") { $("p").fadeTo(1000, 0.9, function() { alert('完成') }); } }); </script>

4、动画切换的比较

toggle与slideToggle和fadeToggle的比较

(1)toggle、sildeToggle以及fadeToggle的区别:
  • toggle:切换显示与隐藏效果

  • sildeToggle:切换上下拉卷滚效果

  • fadeToggle:切换淡入淡出效果

(2)操作元素的显示和隐藏可以有几种方法。例如:

  • 改变样式display为none

  • 设置位置高度为0

  • 设置透明度为0

(3)toggle与slideToggle细节区别:

  • toggle:动态效果为从右至左。横向动作,toggle通过display来判断切换所有匹配元素的可见性

  • slideToggle:动态效果从下至上。竖向动作,slideToggle 通过高度变化来切换所有匹配元素的可见性

5、自定义动画

(1)动画animate

a、所有用于动画的属性必须是数字的,除非另有说明;

b、注意属性值的单位

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

c、每个属性能使用'show', 'hide', 和 'toggle'

//通过toggle参数切换高度
.animate({
    width: "toggle"
});

d、提供一个以 += 或 -= 开始的值

//在现有高度上增加50px
.animate({ 
    height: '+=50px'
}, "slow");

e、CSS 样式使用 DOM 名称(比如 "fontSize")来设置,而非 CSS 名称(比如 "font-size")。

f、options参数
  • duration - 设置动画执行的时间

  • easing - 规定要使用的 easing 函数,过渡使用哪种缓动函数

  • step:规定每个动画的每一步完成之后要执行的函数

  • progress:每一次动画调用的时候会执行这个回调,就是一个进度的概念

  • complete:动画完成回调

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

(2)停止动画stop

a、stop的几个函数

  • .stop();  停止当前动画,点击在暂停处继续开始

  • .stop(true); 如果同一元素调用多个动画方法,当调用.stop()的时候,队列中的下一个动画立即开始。

  • .stop(true,true); 当前动画将停止,但该元素上的 CSS 属性会被立刻修改成动画的目标值

$("#aaron").animate({
    height: 300
}, 5000)
$("#aaron").animate({
    width: 300
}, 5000)
$("#aaron").animate({
    opacity: 0.6
}, 2000)

6、jQuery核心

(1)each方法的应用

  • 来处理对象和数组的遍历(回调函数中传入的两个参数,如果遍历的是数组,第一个参数是索引值,第二个参数是数组的值;如果遍历是对象,第一个参数是属性,第二个参数是属性值。)

  • jQuery.each ( array, callback )            (jQuery.each == $.each

  • jQuery.each ( object, callback )

(2)查找数组中的索引inArray(用于在数组中搜索指定的值,并返回其索引值。如果数组中不存在该值,则返回 -1。)

  • jQuery.inArray ( value, array , [ fromIndex ] )

  • 如果要判断数组中是否存在指定值,你需要通过该函数的返回值不等于(或大于)-1 来判断

(3)去空格神器trim方法(jQuery.trim()函数用于去除字符串两端的空白字符)

(4)DOM元素的get方法

  • get方法是获取的dom对象,也就是通过document.getElementById获取的对象

  • get方法是从0开始索引(所以第二个a元素的查找: $(a).get(1)

  • get方法还可以从后往前索引,传递一个负索引值,注意的负值的索引起始值是-1

(5)DOM元素的index方法

  • 如果不传递任何参数给 .index() 方法,则返回值就是jQuery对象中第一个元素相对于它同辈元素的位置

  • 通过传递dom查找      $(" li ").index(document.getElementById(" test5 ")

  • 通过传递jQuery对象查找  $(" li ").index($(" #test5 "))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值