为啥,我把鼠标移入指定元素,那个小方块不显示啊,,,好像那个onmousemove和那个onmouseout事件里的函数同时执行了,但是我在浏览器页面上打开任意窗口(打开开发者工具也行),他就能显示,但那个onmouseout事件却不管用了
mouseout移动到子对象也会触发的,改为mouseleave事件,如果早几年的旧chrome版本浏览器没有mouseleave事件,一般是通过判断当前移动到的对象是否为子元素来实现的。
打开控制台,谷歌可能做了什么处理,只有移动出可视窗口后才会触发mouseout事件,移动出是、对象也不会触发,。
dian.onmouseout = function () { jq.style.display = "none";};
===>
dian.onmouseleave = function () { jq.style.display = "none";};
帮助到你可以点击采纳支持下吗,谢谢~
理论上来说,这两个事件肯定不会同时执行的,你把代码贴出来,我们好判断问题,也方便修改,截图看不太清楚。
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> .zoom{ padding: 0; width: 500px; height: 300px; margin: auto 20px; background-color: #0077AA; } #s{width: 200px; position: relative;height: 200px; background-color: #0000FF;} .jqZoomPup{ width: 100px;height: 100px; display: none; background-color: rgba(1, 0, 0, 0.5); position: absolute; z-index: 100; } </style> <script src="./jquery-3.5.1/jquery-3.5.1.min.js" type="text/javascript" charset="utf-8"></script> </head> <body> <div class="zoom"> <div id="s"> <img src="../js学习/js学习2.0/dom/IMG/1.jpg" style="width: 200PX;"> <div class="jqZoomPup"> </div> </div> </div> <script type="text/javascript"> // $(function(){ // $("#s").mousemove(function(event){ // var e=event||window.event; // var Left=e.pageX-$(".jqZoomPup").width()/2-$(".zoom").offset().left; // var Top =e.pageY-$(".jqZoomPup").height()/2-$(".zoom").offset().top; // $(".jqZoomPup").css("display",'block'); // $(".jqZoomPup").css("left",Left); // $(".jqZoomPup").css("top",Top); // $(".jqZoomPup").html(Left+" "+Top) // }) // $("#s").mouseout(function(){ // $(".jqZoomPup").css("display",'none'); // }) // }) var dian=document.getElementById("s"); var jq=document.getElementsByClassName("jqZoomPup")[0]; var zoom=document.getElementsByClassName("zoom")[0]; dian.onmousemove=function(event){ var e=event||window.event jq.style.display="block"; var Left=e.pageX-jq.clientWidth/2-zoom.offsetLeft; var Top =e.pageY-jq.clientHeight/2-zoom.offsetTop; jq.style.left=Left+"px"; jq.style.top=Top+"px"; } dian.onmouseout=function(){ jq.style.display="none"; } </script> </body></html>
您的问题已经有小伙伴解答了,请点击【采纳】按钮,采纳帮您提供解决思路的答案,给回答的人一些鼓励哦~~
ps:开通问答VIP,享受5次/月 有问必答服务,了解详情↓↓↓
【电脑端】戳>>> https://vip.csdn.net/askvip?utm_source=1146287632
【APP 】 戳>>> https://mall.csdn.net/item/52471?utm_source=1146287632