function Slider(id){     //属性     //  1. 通过id获取元素对象(大盒子)     this.bigBox = document.getElementById(id);    //2. 获取出大盒子中的所有图片(数组)    this.ullis = this.bigBox.children[0].children;     //3. 统计图片数量(数组.length)     this.num = this.ullis.length;     //4. 获取所有的小圆点     this.ollis = this.createElement();     //5. 设置轮播的当前下标     this.indexA = 0;     //8. 获取文字信息的div     this.div = $id('msg');     this.slide();     //6. 获取左按钮     this.ltBtn = $id('ltBtn');     //7. 获取右按钮     this.rtBtn = $id('rtBtn');     this.addEvent();     //9. 计时器     this.timer = null;     this.autoPlay(); } Slider.prototype.createElement = function(){     //1. 左按钮     var spanleft = document.createElement('span');     spanleft.id = 'ltBtn';     spanleft.innerHTML = '&lt;';     this.bigBox.appendChild(spanleft);     //2. 右按钮     var spanright = document.createElement('span');     spanright.id = 'rtBtn';     spanright.innerHTML = '&gt;';     this.bigBox.appendChild(spanright);     //3. ol li     var arr = []; //放置li     //创建ol     var ol = document.createElement('ol');     //创建li     for(var i = 0;i < this.num;i ++){         var li = document.createElement('li');         arr.push(li);         ol.appendChild(li);     }     this.bigBox.appendChild(ol);     //4. 信息框(div)     var div = document.createElement('div');     div.id = 'msg';     this.bigBox.appendChild(div);     return arr; } Slider.prototype.slide = function(){     //1》图片轮播        // 遍历所有的图片,display - none    for(var i = 0;i < this.num;i ++){        this.ullis[i].style.display = 'none';    }        // 当前图片 display-block    this.ullis[this.indexA].style.display = 'block';    //2》 小圆点        //遍历所有的小圆点,background=red    for(var i = 0;i < this.num;i ++){        this.ollis[i].style.backgroundColor = 'red';    }        //当前小圆点,background = blue    this.ollis[this.indexA].style.backgroundColor = 'blue';        //信息框 = img中的alt属性    this.div.innerHTML = this.ullis[this.indexA].firstElementChild.firstElementChild.alt; } Slider.prototype.addEvent = function(){     var that = this;     //  1. 左按钮 -- 点击事件-- 改变当前下标的值,调用轮播方法     this.ltBtn.onclick = function(){         that.indexA --;         if(that.indexA == -1){             that.indexA = that.num - 1;         }         that.slide();     }     //2. 右按钮 -- 点击事件--改变当前下标的值,调用轮播方法     this.rtBtn.onclick = function(){         that.indexA ++;         if(that.indexA === that.num){             that.indexA = 0;         }         that.slide();     }     //3. 遍历小圆点--移入事件--改变当前下标 的值,调用轮播方法     for(var i = 0;i < this.num;i ++){         //记录下标         this.ollis[i].index = i;         this.ollis[i].onmouseenter = function(){             that.indexA = this.index;             that.slide();         }     } } Slider.prototype.autoPlay = function(){     var that = this;     this.timer = setInterval(function(){         that.indexA ++;         if(that.indexA === that.num){             that.indexA = 0;         }         that.slide();     },3000)     //移入大盒子,停止自动轮播     this.bigBox.onmouseenter = function(){         clearInterval(that.timer);     }     //移出大盒子,开启自动轮播     this.bigBox.onmouseleave = function(){         that.autoPlay();     } } //工具箱 function $id(id){     return document.getElementById(id); }
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄