1. 程式人生 > >jquery例項-多張圖片無縫滾動實現

jquery例項-多張圖片無縫滾動實現

演示效果:


html頁面程式碼:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>多張圖片無縫滾動實現</title>
    <link rel="stylesheet" href="sider.css"/>

    <script src="../jquery-1.8.3.js"></script>
    <script src="sider.js"></script>
</head>
<body>
	 <a href="#" id="leftmove">向左走</a>
       <a href="#" id="rightmove">向右走</a>
    <div class="siderImg">
   
    	<ul>
    		<li><img src="1.jpg" alt=""></li>
    		<li><img src="2.jpg" alt=""></li>
    		<li><img src="3.jpg" alt=""></li>
    		<li><img src="4.jpg" alt=""></li>
            <li><img src="5.jpg" alt=""></li>
    	</ul>
    </div>


</body>
</html>

css程式碼:
*{
	padding: 0;
	margin:0;
}

body{
	margin:50px;
}

li{
	list-style-type: none;
}

.siderImg{
   width:800px;
   height: 200px;
   border: 5px solid #abcdef; 
   position: relative;
   overflow: hidden;  /*內容隱藏溢位,超出部分自動隱藏*/
}


.siderImg ul{
   overflow: hidden;  /*清除ul浮動*/
   width: 1600px;
   height:200px;
   left: 0px;  /*相對於起點*/
   position:absolute;
   _height:1px;  /*IE相容清除浮動*/
}

.siderImg ul li{
	float:left;
	cursor: pointer;   /*設定滑鼠樣式為手狀*/
}


jquery程式碼:

/**
  多張圖片無縫滾動實現
*/
$(document).ready(function(){
     
     var $siderImg = $(".siderImg ul");

     var $siderImgHtml = $siderImg.html();

     $siderImg.html($siderImgHtml+$siderImgHtml);  

     var $imgWidth = $siderImg.children().eq(0).css("width");  //img元素的寬度
     
     var $size =  $siderImg.children().size();  //img元素的個數

     var $ulWidth = $imgWidth.split("px")[0] * $size;   //獲取ul中img元素的總寬度

     $siderImg.css("width",$ulWidth+"px");   //設定ul中寬度

     $leftVar=0;
     
     var $temp=-8;

     var $interval = null;
     
//圖片滾動方法
    var  moveImg=function()
    { 
       $leftVar=$leftVar+$temp;
        
//判斷圖片滾動方向
        if($temp>0)   
		{	 
		  if($leftVar==0)
          {      
           $leftVar =-$ulWidth/2; //向左走重置
          }    
		}
		if($temp<0)
		{
		  if($leftVar==-$ulWidth/2)
          {
           $leftVar = 0;  //向右走重置
          }
        }
	  $siderImg.css("left",$leftVar+"px");
    };

//設定一定時間呼叫反覆呼叫該函式
   interval = setInterval(moveImg,300);

/*滑鼠待在元素上面觸發該事件*/
    $siderImg.mouseover(function(){
         clearInterval(interval);
    });
/*滑鼠移開觸發該事件*/
$siderImg.mouseout(function(){
   interval = setInterval(moveImg,300);
})

$("#leftmove").click(function(){

   $temp = -8;
});

$("#rightmove").click(function(){

   $temp = 8;
});
});