比如一个div元素,当鼠标mouseover事件触发时,我想知道从上左下右哪 ...
发布网友
发布时间:2022-05-15 21:39
我来回答
共4个回答
热心网友
时间:2022-04-24 08:01
比较一下事件对象中 clientX和clientY的值,如果CX是变大说明是从左进来的,变小则是从右进来的;同理CY如果变大说明是从上进来的,变小则是从下进来的。
补充一下用onmousemove
var x2 = 0;
var y2 = 0;
oDiv.onmousemove = function(e)
{
var oEvent = e || event;
var x1 = oEvent.clientX;
var y1 = oEvent.clientY;
...//这里是判断部分,要考虑初次进入的情况我就不写了,判断最终都是要比较x1和x2的大小,y1和y2的大小
//判断完成后把获取的坐标值传给x2和y2以备下次比较
x2 = x1;
y2 = y1;
}追问那左上,右下这些呢?
能有具体点的例子么?
追答左上左下右上右下 就更复杂一些
你不但需要同时比较x和y的值
还要去比较你鼠标进来的第一个坐标点和你DIV的宽或者高的二分之一关系
热心网友
时间:2022-04-24 09:19
HTML或JS都没有提供这个功能,无法判断移动的方向,或来自哪个方向。
不过可以提供给你一个变通的思路:
在DIV上下左右各建立一个紧邻的DIV,作为边界DIV,这样可以判断进入主DIV前,经过了哪个边界DIV,从而判断是从哪个方向进入的。
热心网友
时间:2022-04-24 10:53
谁说不能判断的
js能算出鼠标距离dom相对位置, 和 绝对位置
再根据鼠标的x,y坐标变化规律,就能算出是那边进来的
热心网友
时间:2022-04-24 12:45
一楼专家意见不错