核心提示:实现列表元素向上依次滚动,底部能无缝连接,实现一个动画效果。当鼠标停留在某一个元素上,停止滚动,移开鼠标,继续滚动html代码:bodyp id=p1li苹果/lili橘子/lili香蕉/lili西瓜...
实现列表元素向上依次滚动,底部能无缝连接,实现一个动画效果。当鼠标停留在某一个元素上,停止滚动,移开鼠标,继续滚动
html代码:
<body> <p id="p1"> <li>苹果</li> <li>橘子</li> <li>香蕉</li> <li>西瓜</li> <li>梨子</li> <li>李子</li> <li>火龙果</li> <li>葡萄</li> <li>芒果</li> <li>圣女果</li> <li>橙子</li> </p> </body>
css代码:
<style> *{margin: 0px;padding: 0px;} #p{ height: 200px; width: 200px; border: 1px solid #ccc; } #p1{ height: 230px; width: 200px; border: 1px solid #ccc; margin: 20px auto; padding-top: 0px; overflow: hidden; } #p1 li{ list-style: none; padding-left: 6px; border-bottom: 1px dashed #ccc; } </style>
JS代码:
<script> var marginTop = 0; //上外边距 var isStop = false; //定时函数,每200毫秒执行一次 setInterval(function(){ if(isStop) return; //动画是执行还是停止 $("#p1 li:first").animate({ //第一个li执行动画 marginTop:marginTop-- //设置上面的外边距自减 },0,function(){ //动画之后 执行的函数 var $f = $(this); if(-marginTop == $(this).height()+1){ //判断li移动的距离是否超过自身的高度 $f = $(this).clone(true); //复制一个li $(this).remove(); //把第一个移除。如果第一个移除,那么第二个就自动第一个了 marginTop=0; $f.css("margin-top","0px"); $("#p1").append($f); //把第一个又追加到列表的最后,变成一个无缝连接 } }); },150); $(function(){ $("#p1 li").hover( function(){isStop=true;}, function(){isStop=false;} ); }); </script>