題記:
有很久沒有寫前端了,最近要做個輪播圖,本來想直接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;
}