页面加载后鼠标指针已经结束时触发onMouseOver

时间:2012-04-25 16:11:50

标签: javascript html image mouseevent rollover

我有几个非常相似的页面。他们有一些javascript翻转链接(图像是预加载的,然后有一个调用图像交换函数的onMouseOver事件,最后,有一个恢复原始图像的onMouseOut事件。)

当用户点击指向另一个页面的翻转链接时,该翻译链接在完全相同的位置上具有翻转链接,新页面上的图像将在“过度”状态下加载。在Chrome和Safari中并非如此(IE和Firefox按预期工作)。

所以...在页面加载时,有没有办法检查鼠标是否已经悬停图像以立即交换它?像“OnMouseAlreadyOver”这样的东西?

谢谢。

5 个答案:

答案 0 :(得分:2)

如果你使用jQuery,它没有任何问题!

http://jsfiddle.net/beuae

(不仅适用于divs also

的按钮

实际上,jQuery是一个非常好的框架,它确保一切按预期进行,并且跨浏览器。这个例子证实了这一点。

答案 1 :(得分:1)

W3C standard

  

onmouseover =脚本[CT]
      当指针设备移动到元素上时,会发生onmouseover事件。此属性可用于大多数元素。

     

onmousemove =脚本[CT]
      当指针设备在元素上方移动时,会发生onmousemove事件。此属性可用于大多数元素。

移动对象的边界时会触发

mouseover。当鼠标已经在元素上时会发生mousemove

您可能需要使用onmousemove(甚至两者)。

答案 2 :(得分:0)

您可能需要根据元素位置和鼠标光标位置实际进行计算。

//Get Mouse Position
document.onmousemove=getMouseCoordinates;
function getMouseCoordinates(event){
    ev = event || window.event;
    mouseX = ev.pageX;
    mouseY = ev.pageY;
}

答案 3 :(得分:0)

你不能不将一个变量传递到另一个页面或使用cookie来跟踪哪些是悬停的(如果人们确实改变了他们的鼠标位置,那么它将会被故障转移)

理论上你可以检查鼠标位置和按钮位置,但是除非事件被触发,否则无法获得鼠标位置,所以鼠标必须移动,如果它移动CSS:hover应该被触发。 / p>

这是一个小问题,我怀疑大多数人会点击一个链接,等待下一页,然后期望该链接被悬停并准备再次点击(为什么没有人会继续点击相同按钮,除非它做不同的事情)

从UX的角度来看,我想知道webkit在这里没有最好的方法,为什么将一个页面的操作移植到另一个页面。

答案 4 :(得分:0)

您可以使用document.getElementFromPoint(mouseX, mouseY)来获取元素,但获取光标位置的唯一方法是通过事件。问题是,唯一的事件是点击和鼠标移动,这需要用户从一开始就输入,这是你要避免的。

简而言之,不,不可能使用JavaScript。你还没有使用CSS。