js 鼠标 移动 事件 获取 id

来源:http://zhidao.baidu.com/question/177636162.html


首先,获取到事件对象e,事件来源,IE下面对应的是srcElement,FF下面是target。下面是一个简单的例子,兼容IE和FireFox

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title></title>
    <script type="text/javascript">
        function init() {
            document.body.onmousemove = function(e) {
                if (!e) {
                    e = window.event;
                }
                else {
                    e.srcElement = e.target;
                }
                document.getElementById("divDebug").innerHTML = "mousemove (" + e.clientX + "," + e.clientY + ") srcElement=" + e.srcElement.tagName + "[" + e.srcElement.id + "]";
            };
        }
    </script>
</head>
<body onload="init()">
    <div id="root">
    <div id="divDebug"></div>
    <div id="div2">div</div>
    <span id="span1">span</span>
    <a href="#" id="link1">link</a>
    </div>
    </body>
</html>
ps:如果需要获取父节点,使用parentNode.id
虽然提供的引用中未直接提及JavaScript鼠标右击移动事件的相关内容,但可以结合常见的JavaScript事件处理知识来阐述其实现和使用方法。 在JavaScript里,要实现鼠标右击移动事件,可利用`mousedown`、`mousemove`和`mouseup`这几个事件来达成。具体步骤如下: 1. 监听`mousedown`事件,判定是否为右键点击。 2. 若为右键点击,再监听`mousemove`事件。 3. 当鼠标抬起时,停止监听`mousemove`事件。 以下是示例代码: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Right Click Move Event</title> <style> #box { width: 100px; height: 100px; background-color: blue; position: absolute; } </style> </head> <body> <div id="box"></div> <script type="text/javascript"> const box = document.getElementById('box'); let isRightClicking = false; let startX, startY; box.addEventListener('mousedown', function (e) { if (e.button === 2) { // 2 表示右键 e.preventDefault(); isRightClicking = true; startX = e.clientX; startY = e.clientY; } }); document.addEventListener('mousemove', function (e) { if (isRightClicking) { const dx = e.clientX - startX; const dy = e.clientY - startY; const currentLeft = parseInt(getComputedStyle(box).left); const currentTop = parseInt(getComputedStyle(box).top); box.style.left = currentLeft + dx + 'px'; box.style.top = currentTop + dy + 'px'; startX = e.clientX; startY = e.clientY; } }); document.addEventListener('mouseup', function () { isRightClicking = false; }); </script> </body> </html> ``` 在这段代码中,当在`box`元素上右键点击时,会阻止默认的上下文菜单弹出,并且开启移动监听。鼠标移动时,会依据鼠标的位移来更新`box`元素的位置。鼠标抬起时,停止移动监听。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值