代码如下:constslider=(function(){varSlider={};//构造函数,timeManager,因此它是一个关于管理setInterval函数TimerManager(){this.timers=[];this.args=[];this.isTimerRun=false;}//如果元素不能有TimerManage的属性代表构造函数,重复创建构造函数TimerManager.makeTimerManage=function(element){if(!element.TimerManage||element.TimerManage.constructor!==TimerManager){element.TimerManage=newTimerManager();}};//这是创建添加定时器的方法的顺序TimerManager.prototype.add=function(timer,args){this.timers.push(timer);this.args.push(args);this.timerRun();};//调用的方法是通过命令TimerManager.prototype.timerRun=function(){if(!this.isTimerRun){vartimer=this.timers.shift(),args=this.args.shift();if(timer&&args){this.isTimerRun=true;定时器(args[0],args[1]);}}};//让它运行下一个定时器TimerManager.prototype.next=function(){this.isTimerRun=false;这个.timerRun();};functionslideUp(element,time){if(element.offsetHeight>0){vartotalHeight=element.offsetHeight;varcurrentHeight=totalHeight;varreduceValue=totalHeight/(time/10);element.style.transition="高度"+时间+"毫秒";element.style.overflow="隐藏";vartimer=setInterval(function(){currentHeight-=reduceValue;element.style.height=currentHeight+"px";if(currentHeight<=0){clearInterval(timer);element.style.display="none";元素.style.height=totalHeight+"px";if(element.TimerManage&&element.TimerManage.constructor===TimerManager){element.TimerManage.next();}}},10);}else{if(element.TimerManage&&element.TimerManage.constructor===TimerManager){element.TimerManage.next();}}}functionslideDown(element,time){if(element.offsetHeight<=0){element.style.display="块";element.style.transition="高度"+时间+"毫秒";element.style.overflow="隐藏";vartotalHeight=element.offsetHeight;var当前高度=0;element.style.height="0px";varaddValue=totalHeight/(time/10);vartimer=setInterval(function(){currentHeight+=addValue;element.style.height=currentHeight+"px";if(currentHeight>=totalHeight){clearInterval(timer);element.style.height=totalHeight+"px";如果(元素.TimerManage&&element.TimerManage.constructor===TimerManager){element.TimerManage.next();}}},10);}else{if(element.TimerManage&&element.TimerManage.constructor===TimerManager){element.TimerManage.下一个();}}}//slideUp接口methodSlider.slideUp=function(element){TimerManager.makeTimerManage(element);element.TimerManage.add(slideUp,参数);归还这个;};//slideDown方法接口Slider.slideDown=function(element){TimerManager.makeTimerManage(element);element.TimerManage.add(slideDown,参数);归还这个;};返回滑块;})();nativecall://thisjs在文件中添加这行代码window.slider=slider;//参数1,dom,参数2:timeslider.slideDown(document.queryselector(),time);slider.slideUp(document.queryselector(),time);vue.jscall//在js文件中添加这行代码exportdefaultslider;importinmain.js:importsliderfrom'slider.js';//绑定转到Vue实例原型Vue.prototype.slider=slider;//在组件中调用this.slider(this.$refs,time);
