jquery实现图片无缝轮播显示

纯属个人随笔,不当之处,欢迎指正。

代码如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>图片无缝轮播显示</title>
<script type="text/javascript" src="JavaScript/jquery-1.11.2.min.js"></script>

<style>
	.box,.box2{
		width:800px;
		height:260px;
		margin:160px auto;
		overflow:hidden;
		position:relative;}
	.box,.box2 p{
		text-align:center;}
	.picBox,.picBox2{
		margin:0px;
		padding:0px;
		list-style:none;
		width:1500px;}     <!--此处很关键,在实现无疑轮播时这个宽度一定要比显示图片数量+1的宽度宽-->
	.picBox:hover,.picBox2:hover{
		cursor:pointer;}
	.picBox li,.picBox2 li{
		float:left;}
	.picBox img,.picBox2 img{
		width:200px;
		height:240px;}
</style>
</head>

<body>
	<div class="box">
    	<p>第一种图片轮播:非无缝轮播</p>
        <ul class="picBox">
            <li><img src="images/1.jpg"/></li>
            <li><img src="images/2.jpg"/></li>
            <li><img src="images/3.jpg"/></li>
            <li><img src="images/4.jpg"/></li>
            <li><img src="images/5.jpg"/></li>
        </ul>
    </div>
    
    <div class="box2">
    	<p>第二种图片轮播:无缝轮播</p>
        <ul class="picBox2">
            <li><img src="images/1.jpg"/></li>
            <li><img src="images/2.jpg"/></li>
            <li><img src="images/3.jpg"/></li>
            <li><img src="images/4.jpg"/></li>
            <li><img src="images/5.jpg"/></li>
        </ul>
    </div>
    
<script>

	$(function(){
		
		<!--第一种图片轮播:非无缝轮播-->
		function rollOne(){
			$(".picBox li:first").animate({left:"-=200px"},"linear",function(){
				$(this).remove().clone(true).appendTo(".picBox").fadeIn("slow");	
			});		
		}
		var startRollOne=setInterval(rollOne,2000);
		<!--鼠标移入停止移出继续-->	
		$(".box").hover(function(){
			clearInterval(startRollOne);	
		},function(){
			startRollOne=setInterval(rollOne,2000);	
		});
		
		
		<!--第二种图片轮播:无缝轮播-->
		<!--这种无缝轮播可以通过设置animate动画播放速度值和setInterval中的函数调用时间间隔实现间隔无缝轮播-->
		function rollTwo(){
			$(".picBox2").animate({marginLeft:"-200px"},2000,"linear",function(){
				$(".picBox2").css({marginLeft:"0px"});
				$(".picBox2 li:first").remove().clone(true).appendTo(".picBox2");	
			})	
		}
		var startRollTwo=setInterval(rollTwo,2000);
		<!--鼠标移入停止移出继续-->
		$(".picBox2").hover(function(){
               $(".picBox2").stop();
			clearInterval(startRollTwo);	
		},function(){
			startRollTwo=setInterval(rollTwo,2000);	
		});
			
	});

</script>
 
</body>
</html>

  效果如下:

posted @ 2015-04-28 18:15  Farris  阅读(2296)  评论(0编辑  收藏  举报