6-2作业 疑问
来源:6-2 作业题
qq_陌_45
2017-12-19 14:26:07
//封装一个代替document.getElementById()的方 function byId(id){ return typeof(id)==="string"?document.getElementById(id):id; } //全局变量 var arr=byId("tupian"), arrr=arr.getElementsByTagName("div"), index=0, timer=null, len=arrr.length, tit=byId("tit").getElementsByTagName("div"), dots=byId("dots").getElementsByTagName("span"), pp=byId("dots"); function slideImg(){ //划过清楚定时器 arr.onmouseover=function(){ if(timer) clearInterval(timer); } //离开定时器切换图片 arr.onmouseout=function(){ timer=setInterval(function(){ index++; if(index>=len){ index=0; } changeImg(); //切换图片 },3000) } //自动在arr上触发鼠标离开的事件 arr.onmouseout(); //在标题上绑定鼠标点击事件 for(var j=0;j<len;j++){ tit[j].id=j; tit[j].onclick=function(){ //改变index为当前div的id值 index=this.id; //调用changeImg changeImg(); } } //在圆点导航上绑定鼠标点击事件 for(var o=0;o<len;o++){ dots[o].id=o; dots[o].onclick=function(){ index=this.id; //调用changeImg changeImg(); } } } function changeImg(){ //遍历tupian下的所有DIV将其隐藏 for(var i=0;i<len;i++){ arrr[i].style.display="none"; tit[i].className=" "; dots[i].className=" "; } //根据index索引找出当前DIV,将其显示出来 arrr[index].style.display="block"; tit[index].className="yanse"; dots[index].className="dots-a" } slideImg();
讲师点评:页面问题如下: 【规范方面】 网页文件夹管理,图片、样式表、脚本等资料独立文件夹,不要放在一起,太混乱了。 【整体效果】 按照效果图所示: 要求当鼠标放置在整个大盒子上时停止轮播,你的页面只是鼠标放在图片上时停止了图片的轮播,鼠标放在选项卡时,没有停止选项卡的变化,将停止定时器的盒子修改一下。 如果有问题,可以在问答区进行提问,我们的助教会针对你的问题给与帮助和解答!
请问怎么修改最合适,要在重新获取标题的DOM对象在绑定鼠标划过和离开事件吗?
1回答
好帮手慕糖
2017-12-19
你好,是的哦,这里是指,鼠标在移入选项卡以及图片的时候都要停止轮播(即停止计时器),所以建议:把鼠标移入与移出事件设置给包裹整体(同时包裹选项卡与图片的)盒子。
祝学习愉快~