(function (win) { var timer; var defaultSetting = { time: 3, containerClassName: '.container', NavigationClassName: '.navigation', next: '.next', previous: '.prev', autoPlay: false, data: [], imgWidth: 0, OuterClassName: '.man' } // es5 构造函数 // 主要做 变量的保存和校验 function LunBo(setting) { defaultSetting.OuterClassName = setting.OuterClassName || defaultSetting.OuterClassName defaultSetting.time = setting.time || defaultSetting.time defaultSetting.containerClassName = setting.containerClassName || defaultSetting.containerClassName defaultSetting.NavigationClassName = setting.NavigationClassName || defaultSetting.NavigationClassName defaultSetting.next = setting.next || defaultSetting.next defaultSetting.previous = setting.previous || defaultSetting.previous defaultSetting.autoPlay = setting.autoPlay || defaultSetting.autoPlay defaultSetting.data = setting.data || defaultSetting.data if ( defaultSetting.data.length == 0 || (document.querySelector(defaultSetting.containerClassName) == null || document.querySelector(defaultSetting.NavigationClassName) == null|| document.querySelector(defaultSetting.next) == null|| document.querySelector(defaultSetting.previous) == null|| document.querySelector(defaultSetting.OuterClassName) == null )) { console.error("类名不存在或data数据源为空,请仔细检查") } else { this.init() } } LunBo.prototype = { init() { this.RenderContainer() this.RenderNavigation() this.BindPreviousClick() this.BindNextClick() defaultSetting.autoPlay ? this.AutoPlay() : '' defaultSetting.autoPlay ? this.Seout() : '' this.Seover() setTimeout(() => defaultSetting.imgWidth = document.querySelector("img").width, 300) }, AutoPlay() { timer = setInterval( () => { this.OffSetDistance(-defaultSetting.imgWidth) this.changeActiveYd() }, (defaultSetting.time)*1000 ) }, Seover(){ this.$(defaultSetting.OuterClassName).onmouseover = () => { clearInterval(timer) } }, Seout(){ this.$(defaultSetting.OuterClassName).onmouseout = () => { this.AutoPlay() } }, // 渲染 轮播图的数据到页面 RenderContainer() { defaultSetting.data.forEach((val,index) => { this.$(defaultSetting.containerClassName).innerHTML += `