【发布时间】:2020-01-27 18:54:56
【问题描述】:
我想调用一个mousemove js事件到一个在后面的dom对象,我怎么能忽略前面的对象调用这个事件呢?
我想调用一个矩形绘制,我用 js 和 div 制作它们,首先我有根 div,即我的高度和宽度参考,然后想使用鼠标事件来调整大小和重新定位“矩形”div ,问题是当我调用 mousemove 事件到我的“root”以获取鼠标位置数据并且我的 rect 位于前面然后计算变得疯狂,我的意思是,当我的鼠标到达时,“root”.mousemove 事件被取消'rect' 对象,所以我想将我的 rect 设置为 'transparent' 然后只使用我的 'root' 事件处理程序,希望你能理解和帮助。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="root">
<div id="rect">
</div>
</div>
<script>
var root = document.getElementById('root');
var rect =document.getElementById('rect');
root.addEventListener('mousemove',function(e){
rect.style.width = e.offsetX;
rect.style.height = e.offsetY;
});
</script>
</body>
</html>
我想让'rect'对js鼠标事件'透明'。
【问题讨论】:
-
我将采取的总结方法:我认为您只想在文档级别处理鼠标移动,然后将元素位置收集到数组中,然后检查该事件中的任何鼠标坐标冲突,在如果超过 1 个,碰撞逻辑会找到最底部的项目,根据需要对该项目进行操作。
-
我认为你的事件处理程序应该使用事件冒泡概念。
标签: javascript jquery html dom dom-events