每次移1px的无缝轮播图

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>每次移1px的案例</title>
	<script src="https://code.jquery.com/jquery-3.0.0.min.js"></script>
	<style type="text/css">
		body{
			background: pink;
		}
		.d1{
			margin-top: 20px;
			 100px;
			overflow: hidden;
			position: relative;
			height: 80px;
			background: #fff;

						
		}
		.d2{
			 1880px;
			position: absolute;
		}
		.d2>p{
			margin-top: 0px;
			float: left;
			 100px;
		}
		.p1{
			background: red;
		}
		.p2{
			background: yellow;
		}
		.p3{
			background: green;
		}
	</style>
</head>
<body>
	<div class="d1">
		<div class="d2">
			<p class="p1">1</p>
			<p class="p2">2</p>			
			<p class="p3">3</p>	
		</div>
	</div>
</body>
</html>
<script type="text/javascript">
	var num=0;
	var pWidth = $('.d2>p').innerWidth()*$('.d2>p').length;
	var d2content =$('.d2').html();
	$('.d2').append(d2content)
	var time = setInterval(function(){
		num++	
		if(num>3){
			num=0;
		}
		$('.d2').animate({'left':'-'+num*100+'px'});
	},1000)


</script>

<!--
	1、做轮播图如果是每次移动1px就用css({'left':'-'+num+'px'}),不要用animate({'left':'-'+num+'px'})因为animate其实是css({'left':'-'+num+'px'})+css的transition组合,每次会有一卡一卡的效果(这里的num所有要偏移图片集合的宽度)。
	2、做轮播图如果是一次性移动一整张图片用css({'left':'-'+num*100+'px'})无动画效果直接切换到下一张,用animate({'left':'-'+num*100+'px'})有动画效果,会看到是一整张图从右边到左边一个滑动的效果(这里的num是图片的张数,100px是每张图片的完度)。
 -->

讲解

<div class="d1">
	<div class="d2">
		<p class="p1">1</p>
		<p class="p2">2</p>			
		<p class="p3">3</p>	
	</div>
</div>
//最外层 一定要设置需要显示的宽度、隐藏宽度以外的部分、相对定位。
.d1{
	 300px;
	overflow: hidden;
	position: relative;
}
//第二层 宽度设置到最大、绝对定位。这是被移动的部分。
.d2{
	 1880px;
	position: absolute;
}
//第三层 浮动及可。
.d2>p{
	float:left;
}
//为了能把d2里的内容无缝的轮播,需要把d2的内容复制一份.滚动的宽度不大于所有p集合的宽度(没有复制前)
	var num=0;
	var pWidth = $('.d2>p').innerWidth()*$('.d2>p').length;	
	var d2content =$('.d2').html();
	$('.d2').append(d2content)
	var time = setInterval(function(){
		num++	
		if(num>pWidth){
			num=0;
		}
		$('.d2').css('left','-'+num+'px');
	},30)

原文地址:https://www.cnblogs.com/hyx626/p/9583795.html