Jquery文字一行一行向上滚动

Jquery文字一行一行向上滚动 效果是用了Jquery中animate这个方法实现的 相对来说是蛮简单的 虽然是简单点 还是要分享下 基本原理就是:运用了一个小技巧 滚动的高度和每个li的高度一样的,先找到外层ul的容器 然后相对于外层的容器进行向上滚动 ul在css里面没有设置他的高度 默认情况下是n个li×li的高度 向上是marginTop: -li.height(每个li的高度);
 * 当滚动到最后一个li时候 那么最外层的容器应该滚动到0了 那么我就把第一个li加到ul里面去 这样就实现了循环滚动
 * 而不会滚动到最后一个就停止下来了 基本的HTML/CSS如下

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
  2. <html> 
  3.     <head> 
  4.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
  5.         <title>Untitled Document</title> 
  6.     <style type="text/css"> 
  7.         ul,li{list-style:none; margin:0; padding:0;} 
  8.         .scroll{ width:500px; height:175px; overflow:hidden; border:1px solid #333; margin:50px auto 0;} 
  9.         .scroll li{ width:500px; height:25px; line-height:25px; overflow:hidden;} 
  10.         .scroll li a{ font-size:14px; font-family:"宋体";color:#333; text-decoration:none;} 
  11.         .scroll li a:hover{ text-decoration:underline;} 
  12.     </style> 
  13.     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script> 
  14.     </head> 
  15.     <body> 
  16.         <div class="scroll"> 
  17.             <ul class="list"> 
  18.                 <li><a href="#" target="_blank">我来博主的空间了</a></li> 
  19.                 <li><a href="#" target="_blank">我来博主的空间了</a></li> 
  20.                 <li><a href="#" target="_blank">我来博主的空间了</a></li> 
  21.                 <li><a href="#" target="_blank">我来博主的空间了</a></li> 
  22.                 <li><a href="#" target="_blank">我来博主的空间了</a></li> 
  23.                 <li><a href="#" target="_blank">我来博主的空间了</a></li> 
  24.                 <li><a href="#" target="_blank">我来博主的空间了</a></li> 
  25.             </ul> 
  26.         </div> 
  27.         <script type="text/javascript" src="index.js"></script> 
  28.     </body> 
  29. </html> 

JS代码如下:

  1. /** 
  2.  * @author tugenhua 
  3.  * @email [email protected] 
  4.  * 一行一行文字向上滚动js 
  5.  * 运用了Jquery中的animate动画方法 
  6.  * 运用了一个小技巧 滚动的高度和每个li的高度一样 
  7.  * 先找到外层ul的容器 然后相对于外层的容器进行向上滚动 ul没有设置他的高度 默认情况下是n个li×li的高度 向上是marginTop: -li.height(每个li的高度); 
  8.  * 当滚动到最后一个li时候 那么最外层的容器应该滚动到0了 那么我就把第一个li加到ul里面去 这样就实现了循环滚动 
  9.  * 而不会滚动到最后一个就停止下来了 
  10.  */ 
  11. function autoScroll(obj){ 
  12.     $(obj).find(".list").animate({ 
  13.         marginTop : "-25px" 
  14.     },500,function(){ 
  15.         $(this).css({marginTop : "0px"}).find("li:first").appendTo(this); 
  16.     }) 
  17. $(function(){ 
  18.     setInterval('autoScroll(".scroll")',3000) 

相关推荐