轉: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>
效果如下: