JS事件冒泡与鼠标拖拽
来源:互联网 发布:nginx反向代理jenkins 编辑:程序博客网 时间:2024/05/09 18:35
1、事件冒泡
<div style="background:#CCC;" onclick="alert(this.style.background);"> <div style="background:green;" onclick="alert(this.style.background);"> <div style="background:red;" onclick="alert(this.style.background);"> </div> </div></div>
事件冒泡原理:子节点的操作会影响父级乃至更上一级。
如上图所示,三层div,点击灰色层弹出“灰色”,点击绿色层弹出“绿色”后弹出“灰色”,点击红色层弹出“红色”后弹出“绿色”最后再弹出“灰色”。
对里层的div操作总是会影响外层,这就是事件冒泡。
那我们怎么预防事件冒泡呢?很简单(cancelBubble),如下面代码:
object.onclick = function(ev) { //兼容性处理 var oEvent=ev || event; //代码块 oEvent.cancelBubble=true;}
2、鼠标拖拽
鼠标拖拽原理:当鼠标按下左键时,获取鼠标的坐标,用鼠标坐标减去盒子对应页面的左边和上边的距离,求出鼠标在盒子上的相对位置,然后鼠标拖动时,再用当前鼠标的坐标减去鼠标在盒子上的相对位置。简单来说,就是相对位置不变。代码如下:
<script type="text/javascript"> window.onload=function(){ //定义两个变量存储鼠标在盒子上的相对位置 var disX=0; var disY=0; oBox.onmousedown=function(ev){ //鼠标按下瞬间获取相对距离disX,disY var oEvent=ev || event; disX=oEvent.clientX-oBox.offsetLeft; disY=oEvent.clientY-oBox.offsetTop; document.onmousemove=function(ev){ //鼠标滑动的时候,用相对距离重新计算新的top和left值 var oEvent=ev || event; oBox.style.left=oEvent.clientX-disX+'px'; oBox.style.top=oEvent.clientY-disY+'px'; } document.onmouseup=function(){ //鼠标弹起,结束拖拽行为 document.onmousemove=null; document.onmouseup=null; } //alert(disX); return false; } }</script>
0 0
- JS事件冒泡与鼠标拖拽
- js 鼠标拖拽事件
- js鼠标拖拽事件
- 解决js中鼠标事件冒泡问题
- 鼠标拖拽,阻止默认事件、事件冒泡。
- 鼠标事件的冒泡与捕获
- JS事件捕获与冒泡
- JS冒泡事件与处理
- js事件冒泡与捕获
- JS事件捕获与冒泡
- JS鼠标与滚轮事件
- js中的冒泡事件与事件监听
- 【js】事件冒泡与事件捕获
- js之事件捕获与事件冒泡
- js中的事件捕获与事件冒泡
- js中的事件冒泡与事件捕获
- JS 事件捕获与事件冒泡
- JS事件捕获与事件冒泡
- Essential Qt 第十一章 事件的运用
- Essential Qt 第十二章 文本文件的读写
- 将博客搬至CSDN
- 资源总汇
- HDU-1196 Lowest Bit
- JS事件冒泡与鼠标拖拽
- 23种设计模式UML图
- Android Badge 角标 总结
- 点击表格获取表格行或列索引
- 微软办公软件的一些常用操作
- DNS解析流程
- HDU-1754 线段树的节点更新,储存区间的最大值
- 用变量保存多种类型的数据
- orcale笔记