一般对于前端来说,轮播图是一个几乎必做的小项目,因此今天我们就来说说它的原理:
轮播图的做法千万种,今天我就来说说我的轮播图;
1.首先,要先获取元素,如何获取应该都知道,就不说了;
2.还是要运用排他思想,即只有当前选项有这个类,其他的都没有(goIndex函数便是此效果);
3.我运用的思路其实是相当于在同一个地方放了很多个图片,然后一张一张的依次翻上来;
4.用自定义属性将圆圈与图片连接起来;
5.设置定时器效果,使它看起来平缓自然;
// 大轮播图
var items=document.getElementsByClassName('item');
var goPreBtn=document.getElementById('goPre');
var goNextBtn=document.getElementById('goNext');
var points=document.getElementsByClassName('point');
// var when=0;
var index=0; //表示是第几张图片在展示 有active这个类名第几张图片在展示的
// 第几个点在展示
var clearActive= function(){
for(var i=0;i<items.length;i++) {
items[i].className='item';
}
for(var i=0;i<points.length;i++) {
points[i].className='point';
}
}
var goIndex= function(){
clearActive();
points[index].className='point active';
items[index].className='item active';
}
var goNext= function(){
if(index<items.length-1) {
index++;
}else{
index=0;
}
goIndex();
}
var goPre= function(){
if(index==0){
index=items.length;
}else{
index--;
}
goIndex();
}
goNextBtn.addEventListener('click',function(){
goNext();
})
goPreBtn.addEventListener('click',function(){
goPre();
})
for(var i=0;i<points.length;i++){
points[i].addEventListener('click',function(){
var pointIndex=this.getAttribute('data-index');
index=pointIndex;
goIndex();
// when=0;
})
}
setInterval(function(){
goNext();
},2000);
// 结束其实,我刚开始学习的是pink老师的做法,但可能是我学艺不精,做不出来那种效果,总是在报错,要不就是会出现bug,感觉有点难做,于是我又找到了这种简易点的做法,希望大家能喜欢!
现在我正在学习javascript高级,希望可以学会,然后可以再把代码精进些,下一阶段我会写一些关于它的知识点!!
版权声明:本文为m0_64383315原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。