我正在寻找一个onmouseover事件来检测鼠标悬停在窗口顶部的时间。我只能找到整个页面的onmouseover事件。如何限制在窗口的最顶端?
我试图将事件附加到页面上没有“元素”,正如一些人所建议的那样。
这适用于任何网页 - 我对页面上的HTML没有任何控制权。 (抱歉不包括原帖!)
只需支持现代浏览器,最简单的方法,没有jquery。
THX!
(也在daniweb和codingforums.com上询问)
答案 0 :(得分:3)
可以将onmouseover
添加到任何HTML元素,即任何div
,p
,img
,ul
,任何内容。你有一个元素覆盖你感兴趣的页面部分吗?然后只需将事件添加到该元素。
如果要捕捉鼠标移动的区域与实际元素不对应,可以通过将eventlistener添加到body
并检查指针所在的位置来实现:
document.body.addEventListener("mousemove", function(event) {
//Check if we are in the top area of the page.
if(event.pageY < 300) {
//Do something here.
}
});
如果您希望它使用浏览器页面区域的顶部而不是页面本身(因此滚动不会影响屏幕上的截止位置),只需使用clientY
代替{ {1}}。
答案 1 :(得分:1)
当鼠标位于页面顶部时发出警报:jsfiddle:DEMO
上的演示JS:
(function (){//alert at top
function getPosition(e){
if (e.pageY < 75) alert('top');//switch to clientY for top of screen
}
document.addEventListener('mousemove', getPosition, false);})();
编辑:
使用:clientY作为顶部视图屏幕,因为页面可能更长,这与屏幕一致
使用:pageY仅适用于您网站的顶部