jQuery笔记(动画)

使用JavaScript实现动画效果通常都是调用setTimeout()一点点地改变CSS样式,从而达到有动画效果。
要实现动画效果,单纯使用原始JavaScript会很繁琐,而使用jQuery就会相对简单一些。

1 show()hide()toggle()

show()hide()toggle()顾名思义,就是显示,隐藏以及切换的意思,它们都是jQuery对象的方法,可以接受两个参数,一个是时间,一个是callback函数(回调函数),这用于动画完成后才执行的动作。
时间参数可分为:slownormalfast(字符串)以及毫秒(Number)。

var $div = $("div.abc");
$div.toggle(1000);

2 slideUp()slideDown()slideToggle()

show()hide()是从左上角逐渐展开或收缩的,而slideUp()slideDown()则是在垂直方向逐渐展开或收缩的。

3 fadeIn()fadeOut()fadeToggle()

fadeIn()和fadeOut()的动画效果是淡入淡出,也就是通过不断设置DOM元素的opacity属性来实现。

4 自定义动画

4.1 animate()

animate()需要传入的参数就是DOM元素最终的CSS状态(类型是个对象),时间以及回调函数,jQuery在时间段内不断调整CSS直到达到我们设定的值,同时假如需要连续调用animate()方法,那么设置CSS参数时可使用叠加,递减运算符,如:

var $div=$("div.abc");
$div.animate({
    width:"250px",
    heigth:"+=250px",//叠加
    opacity:0.25
},3000,function(){
    //恢复状态
    $(this).css('opacity', '1.0').css('width', '128px').css('height', '128px');
})

注:animate()方法中所用到的CSS属性值必须是数字,倘若想要实现如margin:auto;的效果,就需要先使用jQuery进行操作取出当margin:auto;时对应的数值

4.2 is(':animated')

为了避免用户快速,重复地执行animate()方法(:animated是个选择器),可以使用is(':animated')来规定当对象没有动画状态时,才执行animat()方法,以免重复叠加,如:

if (!$("#abc").is(":animated")){
    xxxx
}

类似的还有is(':visible')(可见的)

4.3 delay()

jQuery的动画效果还可以串行执行,通过delay()方法还可以实现暂停,如:

var div=$("img");
div.slideDown(2000).delay(1000).animate({
       width: '100px',
       height: '100px'
        }, 2000).delay(1000).animate({
       width: '50px',
       height: '50px'
   }, 2000);

:正如animate()方法实际改变的是CSS样式,所以假如改变的元素节点并没有该样式时,对他们设置就起不了作用,另外animate()也没有实现对background-color的动画效果,若要实现动画效果,就要使用CSS3的transition属性了。

转载于:https://www.cnblogs.com/AB786883603/p/8325402.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值