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
你好,是的哦,这里是指,鼠标在移入选项卡以及图片的时候都要停止轮播(即停止计时器),所以建议:把鼠标移入与移出事件设置给包裹整体(同时包裹选项卡与图片的)盒子。
祝学习愉快~