js 获取鼠标坐标的问题
在页面某个位置一点,就能获取到鼠标的坐标.但是页面最大化和不是最大化时,同一点获取的鼠标的坐档却不同(我不是指要零误差)好比在页面最大化时,我点某小图得到(10,10),...
在页面某个位置一点,就能获取到鼠标的坐标. 但是页面最大化和不是最大化时,同一点获取的鼠标的坐档却不同(我不是指要零误差) 好比在页面最大化时,我点某小图得到(10,10),然后把页面还原,再将页面放到屏幕左边,再点同一小图得到坐标差很多。同... 在页面某个位置一点,就能获取到鼠标的坐标. 但是页面最大化和不是最大化时,同一点获取的鼠标的坐档却不同(我不是指要零误差) 好比在页面最大化时,我点某小图得到(10,10),然后把页面还原,再将页面放到屏幕左边,再点同一小图得到坐标差很多。同样的,如果还是最大化,把分辩率一改,得到的坐标又差很多。 event.clientX event.screenX event.offsetX 都试过,还是解决不了,看手册,clientX是相对于窗口的,应该这个管用,可以实际上不行! 是不是哪里有问题。 高手帮忙解决一下!会加分。 展开 ----------------------------------------------------------------------------------- 和一楼说的一样。 我就是要知道怎么 获取相对于整个页面(文档)的鼠标坐标,无论窗口或分辨率怎么变,应该获取到的值是相同的。 但使用document.body.scrollLeft+event.clientX 好像不行啊
展开
展开全部
首先你要先搞清你所说的坐标变化不大是相对窗口,屏幕,还是文档的,他们的坐标系是不同的。不知你想要找的是哪一个。
1相对窗口,当然是以浏览器窗口为主了,即浏览器中可见部分(即包含文档部分)的左上角为坐标原点。这是用clientX和clientY获取的。
2相对屏幕,当然是以你的显示器为主了,显示器的左上角为原点,用screenX和screenY可以获取到
3相对文档的,即以文档BODY所显示的左上角为原点,例如当一个DIV的position="absolute"时设left="100px"
top="100px"那么无论你如何变换浏览器,虽然它显示的位置在变但他在文档中的位置是不变的。一般用document.body.scrollLeft+event.clientX和document.body.scrollTop+event.clientY来获取
而offsetX解释说是事件产生的位置和鼠标位置的偏移量,没太理解,我也是初学。
而你说改变分辨率坐标改变,这是必然的。因为在不同的分辨率下网页的显示样式不同,这不是坐标改变的主要原因,主要还是因为度量的改变,如:无论屏幕的分辨率怎么改屏幕大小是不变的,但它代表的显示逻辑长度改变了,如1024×768和800×600,同样宽度的屏幕被当成1024个长度单位来用和当成800个长度单位来用当然会不同,当你点击屏幕的中央时前者返回的是1024/2而后者返回的是800/2.所以坐标值会改变。就像你用米尺量是1米,用寸尺量是3寸,一个是1,一个是3一样的道理。
1相对窗口,当然是以浏览器窗口为主了,即浏览器中可见部分(即包含文档部分)的左上角为坐标原点。这是用clientX和clientY获取的。
2相对屏幕,当然是以你的显示器为主了,显示器的左上角为原点,用screenX和screenY可以获取到
3相对文档的,即以文档BODY所显示的左上角为原点,例如当一个DIV的position="absolute"时设left="100px"
top="100px"那么无论你如何变换浏览器,虽然它显示的位置在变但他在文档中的位置是不变的。一般用document.body.scrollLeft+event.clientX和document.body.scrollTop+event.clientY来获取
而offsetX解释说是事件产生的位置和鼠标位置的偏移量,没太理解,我也是初学。
而你说改变分辨率坐标改变,这是必然的。因为在不同的分辨率下网页的显示样式不同,这不是坐标改变的主要原因,主要还是因为度量的改变,如:无论屏幕的分辨率怎么改屏幕大小是不变的,但它代表的显示逻辑长度改变了,如1024×768和800×600,同样宽度的屏幕被当成1024个长度单位来用和当成800个长度单位来用当然会不同,当你点击屏幕的中央时前者返回的是1024/2而后者返回的是800/2.所以坐标值会改变。就像你用米尺量是1米,用寸尺量是3寸,一个是1,一个是3一样的道理。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询