help!mousemove问题

wubo100 2008-06-27 08:20:26
<script>
function move()
{
var d = document.getElementById("move");
d.style.display = "";
d.style.left = event.clientX;
d.style.top = event.clientY;
}

function out()
{
var d = document.getElementById("move");
d.style.background = "#ffffff";
}
</script>
<div><img src="newpear1.jpg" onMouseMove="move()" onMouseOut="out()" /></div>
<div style="width:300px; height:80px; background:#ff0000; display:none; position:absolute;" id="move"></div>

如上程序,当我鼠标在图片上移动时将有id='move'(以下简称move层)的层跟随,该层初始背景为红色,当鼠标移出图片时move层为白色,可这出现个问题,就是鼠标在图片上移动速度快一点,将也会触发mouseout事件,变成白色。这是什么原因,我根本还在图片上移动,并没有移出图片,为什么也会触发mouseout事件呢?各位兄弟帮帮忙了!!
...全文
81 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
gghunter 2008-06-27
  • 打赏
  • 举报
回复
哦~~~~~~~~刚没看到7楼的~~~不过大概这思路....不过具体方法自己搞定.他那个写法会有问题的.
gghunter 2008-06-27
  • 打赏
  • 举报
回复
都说是你鼠标离开了newpear1.jpg,所以变成白色,................你在做跟随的时候,id='move'(以下简称move层)的层左上角紧跟鼠标,当你向右下方移动的时候就变成白色.

你可以通过onmouseout,然后根据newpear1.jpg范围,判断执行 out() ,而不是直接通过onmouseout触发.
wubo100 2008-06-27
  • 打赏
  • 举报
回复
非常感谢!结帖了
sd5816690 2008-06-27
  • 打赏
  • 举报
回复
下面的方法没有考虑出现滚动条的情况

<script>
var x = 0;
var y = 0;
function move()
{
var d = document.getElementById("move");
d.style.display = "";
x = event.clientX;
y = event.clientY;
d.style.left = event.clientX;
d.style.top = event.clientY;
}
function out()
{
var d = document.getElementById("move");
var img = document.getElementById("img1");
if(x > (img.offsetWidth+img.offsetLeft-10)
|| x < img.offsetLeft+10
|| y > (img.offsetHeight+img.offsetTop-10)
|| y < img.offsetTop+10){
d.style.background = "#ffffff";
}
}
</script>
<div> <img id="img1" src="Winter.jpg" onMouseMove="move()" onMouseOut="out()" /> </div>
<div style="width:300px; height:80px; background:#ff0000; display:none; position:absolute;" id="move"> </div>
wubo100 2008-06-27
  • 打赏
  • 举报
回复
做了实验,果然入3楼所说的,是因为移动到move层上去的,但该如何解决呢?
wubo100 2008-06-27
  • 打赏
  • 举报
回复
那这应该如何解决呢
sd5816690 2008-06-27
  • 打赏
  • 举报
回复
准确说不是移动快了,是向下或想右移动就会出现这种情况
sd5816690 2008-06-27
  • 打赏
  • 举报
回复
如果移动快了,就移动到id="move"的层上去了,所以出发了onmouseout事件
gghunter 2008-06-27
  • 打赏
  • 举报
回复
刚开始把鼠标移进newpear1.jpg的时候.触发id='move'(以下简称move层)的层,该层初始背景为红色.可是当你移动出去后,变成白色,再次把鼠标移进newpear1.jpg的时候.颜色并没有恢复成红色.所以会产生错觉,觉得是因为标在图片上移动速度快一点,将也会触发mouseout事件,变成白色

87,915

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧