仿新版迅雷列表进场动画体验

迅雷7的用户体验确实不错~对它的list列表进场时的动画印象尤为深刻(具体自己体验)。下面前端技术实现一下这个特效。

第一步是要模拟一种渐缓FadeIn的效果,html代码就是一个ul列表。开始对所有的li都display:none

 

$('li').each(function(index){
    $(this).fadeIn((index+1)*300);
});

直接用each循环并对li逐个增加fadeIn的时间达到一种渐缓的FadeIn动画,但是这种体验感觉更迅雷的体验还有很大的差距,还有就是fadeIn的效果其实是不够明显的。层次感不是很强。

 

于是乎,继续增加delay函数:

 

 

$('li').each(function(index){
    $(this).delay((index+1)*80).fadeIn(300);
});

 

如此的话感觉会比刚才的好很多,会有一种层次加载感。但是由于不是同步的渐入,大于一屏时由于滚动条的影响会出现屏幕的抖动,体验会比较糟糕。

 

第二步是对li的位置的调整,仔细观察迅雷的进场动画,其实每一个列表项都有一个向下微动的动作。另外其实列表载入时所有列表不是刚开始不显示的,而是以一定的透明度显示出来。

 

微动的动作我们可以对于li的css中加入负的外边距并设置透明度。

 

li{
    margin-top:-25px; 
    opacity: 0.2;
    filter:alpha(opacity=20); 
    -moz-opacity:0.2;
    -khtml-opacity: 0.2;
}

  接下来就是js

$('li').each(function(index){
    $(this).delay(index * 80).animate({
        marginTop: '0px',
        opacity: 1
    }, (index + 1) *150);
});

 

直接对每一个li逐个添加animate 改变透明度和外边距,这样就能基本实现和迅雷列表入场动画一样效果了!

另外扯一句有些同学可能会担心性能问题,经测试其实这样的动画在各个浏览器都能流畅运行!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值