老师,为何鼠标悬停在图片上没效果,还是会轮播图片?

老师,为何鼠标悬停在图片上没效果,还是会轮播图片?

<!DOCTYPE html>

<html>


<head>

<meta charset="utf-8" />

<title></title>

<link rel="stylesheet" type="text/css" href="lbt.css" />

</head>


<body>

<div class="main" id="main">

<!--图片轮播-->

<div class="banner" id="banner">

<a href="#">

<div class="b_slide slide1 s_active"></div>

</a>

<a href="#">

<div class="b_slide slide2 "></div>

</a>

<a href="#">

<div class="b_slide slide3"></div>

</a>

</div>

<a href="#" class="button prev"></a>

<a href="#" class="button next"></a>

                <!--点状图-->

              <div class="dot">

              <span class="active"></span>

              <span></span>

              <span></span>

              </div>

</div>

</body>


</html>

<script type="text/javascript" src="lbt.js">

</script>

js代码


var timer = null;

var index = 0;

var main = document.getElementById("main");

var pics =document.getElementById("banner").getElementsByTagName("div");

var len = pics.length;

var len = pics.length;


function slideImg(){

timer = setInterval(function(){

index++;

if(index>=len) index=0;

changeImg();

},2000)


main.onmouseout();


main.onmouseover=function(){

if(timer)

clearInterval(timer);

}

}


function changeImg(){

for(var i=0;i<len;i++){

pics[i].style.display="none";

}

pics[index].style.display="block";

}

slideImg();


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小琪 2020-05-10 18:12:03

同学你好,由于js代码中的slideImg()方法当鼠标离开图片时没有触发函数,导致没有效果,修改后代码如下:

function slideImg(){
	main.onmouseover=function(){
		if(timer) clearInterval(timer);
	}
	
	main.onmouseout = function(){
		timer = setInterval(function(){
		index++;
		if(index>=len) index=0;
		changeImg();
		},2000);
	}
	
	main.onmouseout();
}

如果我的回答解决了你的疑惑,请采纳!祝学习愉快~

  • 提问者 慕虎5419128 #1
    老师再问下,那是为何没有触发函数呢,我在slime函数里也写了onmouseover的事件的呀
    2020-05-10 20:05:31
  • 好帮手慕阿莹 回复 提问者 慕虎5419128 #2
    同学你好,main.onmouseout();出了问题导致没有办法向下执行,原因是,这里没有给main.onmouseout();绑定函数,我们给onmouseout()绑定这个main.onmouseout = function(){ timer = setInterval(function(){ index++; if(index>=len) index=0; changeImg(); },2000); } 后,main.onmouseout();不报错了就可以向下执行onmouseover等了。如果我的回答解决了你的疑惑,请采纳!祝学习愉快~
    2020-05-11 11:58:43
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师