关于javaScript中onmousemove事件没效果的原因解释
2017-06-09 18:14
405 查看
前言
onmouseXXX事件是用来监听鼠标相关的操作的,例如有onmousedown,onmousemove,onmouseout等,今天我们来看看onmousemove方法的使用,以及注意事项。代码
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body onmousemove="test()" style="margin: 0;"> <div id="app" style="background: red;">aa</div> <script type="text/javascript"> var app = document.getElementById("app"); function test(){ var x = event.clientX; var y = event.clientY; app.innerText = "x: "+x + "y: " + y } </script> </body> </html>
效果图
我们要实现的效果是当鼠标在整个页面上移动时,在div标签内显示出当前鼠标位置在浏览器中的坐标,但是当你运行上面的代码时,你发现只有鼠标放到div所在的范围内时,才会显示坐标信息。要想在整个页面中能起到效果,需要采用下面的方式。
方式一: 只采用body标签作为跟标签
<body onmousemove="test()" style="margin: 0;"> <div id="app" style="background: red;">aa</div> <script type="text/javascript"> var app = document.getElementById("app"); function test(){ var x = event.clientX; var y = event.clientY; app.innerText = "x: "+x + "y: " + y } </script> </body>
方式二: 在代码中监听
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body style="margin: 0;"> <div id="app" style="background: red;">aa</div> <script type="text/javascript"> var app = document.getElementById("app"); function test(){ var x = event.clientX; var y = event.clientY; app.innerText = "x: "+x + "y: " + y } //此处test没有括号 document.onmousemove = test; </script> </body> </html>
原因解释:
为什么最开始的方式无法实现我们的效果呢?根据我个人的猜测,onmousemove属性需要放到跟标签上才有作用。最开始的方式中,虽然body标签的范围是整个页面,但是它不是跟标签,所以无法实现。相关文章推荐
- javascript部分事件解释
- 比较详细的关于javascript中void(0)的具体含义解释
- 关于JavaScript 的事件[上]
- 关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
- 关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
- JavaScript onmousemove 事件
- 【web开发】关于Javascript事件注册的那些事
- 关于javascript DOM事件模型的两件事
- 关于javascript DOM事件模型的两件事
- 关于web中javascript不能响应ActiveX事件
- 比较详细的关于javascript中void(0)的具体含义解释
- javascript事件解释
- 请教关于javascript为控件添加焦点事件
- 关于JavaScript 的事件[下]
- 关于JavaScript中事件的一些重要说明
- 关于asp.net中javascript等脚本不能执行的原因.
- 关于JavaScript 弹出窗口 展开 TreeView 事件 无法触发问题
- JavaScript事件列表与解释。
- 关于JavaScript 的事件综合分析第1/2页
- 关于JavaScript键盘事件