jquery实现名单滚动

时间:2023-11-11 08:44:08

转: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>

效果如下:

jquery实现名单滚动