JS實現輪播圖(可以選擇加上按鈕可選擇加當前第幾個圖)

題記:

有很久沒有寫前端了,最近要做個輪播圖,本來想直接cope一個的,結果網上那些都太複雜了,寫那麼多,改了個簡單的,防止以後再做好直接用,註釋多,簡單易懂!!!主要是方便!!!

GitHub下載地址我放在了文末。

實現代碼:

<!DOCTYPE HTML>
<head>
	<meta charset="utf-8">
	<link rel="stylesheet" type="text/css" href="./demo.css">
</head>

<body>
	<div class="slide">
		<div class="img">
			<ul id="slide_img">
				<li><img src="./img/timgZQQ905MD.jpg"></li>  <!--處理無縫銜接的圖片-->
				<li><img src="./img/1486293868523.jpg"></li>
				<li><img src="./img/timg1.jpg"></li>
				<li><img src="./img/timg2.jpg"></li>
				<li><img src="./img/timgZQQ905MD.jpg"></li>
			</ul>
		</div>
<!-- 		<ul id="num">	//此處是下標圓點.這裏我不要,需要的話直接取消註釋就行。
			<li></li>
			<li></li>
			<li></li>
			<li></li>
		</ul> -->
		<div class="btn">
			<span id="left"><</span>
			<span id="right">></span>
		</div>
	</div>
	<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
	<!--通過百度CDN地址引用jQuery庫-->
	<script type="text/javascript" src="./demo.js"></script>
</body>





//js代碼如下--------------------------------------------------------------------


$(document).ready(function () {
	initRadius();
});

var number = 1;  //設置爲全局變量

//輪播圖圖片主體
function startSlide() {
	dealRadius(number);
	if(number == 4) {		//此處爲4,因爲5張圖片,如果爲其他的減1即可
		number = 0;
		$('#slide_img').css({left: '0px'});  //處理無縫銜接圖
		 dealRadius(0); // 處理無縫銜接小圓點的跳轉
	}
	number++;
	var imageLeft = -1366 * number;  //1366是移動的距離,根據自己圖片的大小更改
	$('#slide_img').animate({left: imageLeft});
}	
var timer = setInterval(startSlide,3000);//3000是3秒,每次間隔3秒鐘滑動一次



//小圓點的輪播實現
function dealRadius(num) {
	var lis = $('#num li');
	lis.eq(num).css('background-color', 'red');
	for(var i = 0; i < num; i++) {
		lis.eq(i).css('background-color','white');
	}
	for(var i = num + 1; i < 4; i++) {
		lis.eq(i).css('background-color','white');
	}
}

//初始化小圓點
function initRadius() {
	var lis = $('#num li');
	lis.eq(0).css('background-color', 'red');
}


//左右按鈕的實現
$('#left').mousedown (function() {
	clearInterval(timer);
	if(number == 0) {
		$('#slide_img').css({left: '-4000px'}); 
		number = 4;
	}
	var imageLeft = -1366 * (number-1);
	$('#slide_img').animate({left: imageLeft});
	number--;
	if(number == 0) {
		dealRadius(3);
	} else {
			dealRadius(number-1);
	}
});
$('#left').mouseup(function() {
	timer = setInterval(startSlide,3000);
});

$('#right').mousedown (function() {
	clearInterval(timer);
	if(number == 4) {
		number = 0;
		$('#slide_img').css({left: '0px'});  //處理無縫銜接圖
	}
	var imageLeft = -1366 * (number+1);
	$('#slide_img').animate({left: imageLeft});
	dealRadius(number);
	number++;

});
$('#right').mouseup(function() {
	timer = setInterval(startSlide,3000);
});


//小圓點的點擊實現
$('#num').on('click','li',function(){
	clearInterval(timer);
	var _number = $(this).index() + 1;
	number = _number
	dealRadius(number-1);
	var imageLeft = -1366 * number;
	$('#slide_img').animate({left: imageLeft});
	timer = setInterval(startSlide,3000);
});






css代碼如下-----------------------------------------------------------------
*{
	margin: 0;
	padding: 0;
}
.slide{
	position: relative;
	width: 1266px;		/*裝圖片的盒子的長度爲1266px,可以任意改*/
	height: 500px;
	margin: 40px auto;
	overflow: hidden;
}
.img ul{
	position: absolute;
	left: -1366px;		
	width: 6830px;		/*總共的圖片長度例如此例子是5個圖,5*1366px*/
}
.img li{
	list-style-type: none;
	float: left;
}
img{
	width: 1366px;
	height: 500px;
}
#num li{
	list-style-type: none;
	background-color: white;
	border: 1px solid red;
	border-radius: 100px;
	float: left;
	width: 10px;
	height: 10px;
	margin: 10px;
	cursor: pointer;
}
#num {
	position: absolute;
	top: 450px;
	left: 800px;
}
.btn{
	font-size: 30px;
	color: gray;
}
#left{
	position: absolute;
	top: 230px;
	left: 40px;
	cursor: pointer;
}
#right{
	position: absolute;
	top: 230px;
	right: 40px;
	cursor: pointer;
}

實現效果圖:

一共4張圖片切換,這裏我就截2張效果圖。

另外代碼的下載地址如下:

代碼下載地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章