2

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

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

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

谢谢你。

4

5 回答 5

2

如果您使用 jQuery,它可以正常工作!

http://jsfiddle.net/beuae

(不仅适用于按钮,也适用于 div

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

于 2012-04-25T16:29:54.443 回答
1

W3C标准

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

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

mouseover在移动到对象的边界上时触发。mousemove当鼠标已经在元素上时发生。

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

于 2012-04-25T16:19:45.817 回答
0

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

//Get Mouse Position
document.onmousemove=getMouseCoordinates;
function getMouseCoordinates(event){
    ev = event || window.event;
    mouseX = ev.pageX;
    mouseY = ev.pageY;
}
于 2012-04-25T16:14:43.227 回答
0

您不能不将变量传递给其他页面或使用 cookie 来跟踪哪个被悬停(如果人们确实更改了鼠标位置,这将失败)

从理论上讲,您可以检查鼠标位置和按钮位置,但是除非触发事件,否则无法获取鼠标位置,因此鼠标必须移动,如果移动 CSS :hover 应该被触发。

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

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

于 2012-04-25T16:18:46.757 回答
0

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

简而言之,不,不可能用 JavaScript 来做。你只剩下使用 CSS 了。

于 2012-04-25T16:19:02.540 回答