转:http://www.qdfuns.com/notes/25341/917d9cb031f835a086dd445b77b6e04e.html
介绍:
记录滚动特效。
就是那一排文字不停地滚啊滚啊滚得特效,在抽奖活动结果显示啦、报名结果显示上用的非常频繁。当年总是希望在抽奖结果面板上看到自己的名字,然而二十几年了都没见过一次2333,这个活动特效可以让结果显示看起来更加灵动,接下来我就说一下这个特效得实现方法。
思路:
-用一个div包裹住ul,并设置溢出外层div 的都隐藏(overflow为hidden);
-设置他们为相对定位,用top值来控制ul向上移动;
-每次向上移动一个li的高度后,将第一个li插入到列表最后端。
-这样就可以使记录不断向上移动,制造列表滚动的效果。
(PS:这里使用的是模拟数据,在真实应用场景中,可用Ajax获取后端真实数据再插入DOM中。)
代码如下:
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>记录滚动</title> <style> .panel{ width:340px; padding:10px; text-align: center; background-color:#FF3C3C; border-radius: 0 0 8px 8px; } h2{ color:#fff; margin: 5px; } .activity{ width: 300px; margin: 0 auto; position: relative; overflow: hidden; height: 165px; background-color: #fff; border-radius: 5px; } .activity ul{ top: -15px; padding: 0; color: #666; position: relative; } .activity li{ height: 34px; padding:0; font-size: 12px; line-height: 34px; list-style: none; border-bottom: 1px dotted #d2d2d2; } </style> </head> <body> <div class="panel"> <h2>活动动态</h2> <div class="activity" id="J_Activity"> <ul> <li>user1 获得了7折优惠券</li> <li>user2 获得了8折优惠券</li> <li>user3 获得了7折优惠券</li> <li>user4 获得了5折优惠券</li> <li>user5 获得了4折优惠券</li> </ul> </div> </div> </body> <script src="http://libs.baidu.com/jquery/2.0.0/jquery.js"></script> <script type="text/javascript" charset="utf-8"> $(function () { var listPanel = $('#J_Activity ul'); var z = 0;//向上滚动top值 function up() {//向上滚动 listPanel.animate({//中奖结果 'top': (z - 35) + 'px' }, 1500, 'linear', function () { listPanel.css({'top': '0px'}) .find("li:first").appendTo(listPanel); up(); }); } up(); }); </script> </html>
效果如下: