深圳HTML5培训:默认行为和拖拽思路

该博客围绕深圳HTML5培训,介绍默认行为即浏览器自触发事件,如a链接跳转等,还给出阻止默认行为的方法。阐述拖拽思路,包括添加相关事件及目标元素位置公式。此外,讲解了DOM0级和DOM2级事件处理及兼容问题的解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

深圳HTML5培训:默认行为和拖拽思路

什么是默认行为:默认行为就是浏览器自己触发的事件。比如:a链接的跳转,form提交时的跳转,鼠标右键跳转;
oncontexmenu当点击右键菜单的时候;

return false

阻止默认行为

if(e.preventDefault) {

e.preventDefault();

}else {

window.event.returnValue = false;

}
事件移除。document.οnmοuseοver=null;
拖拽
拖拽事件:
onmousedown onmousemove onmouseup
拖拽思路:

1.给目标元素添加onmousedown事件,拖拽的前提是在目标元素按下鼠标左键

2.当onmousedown发生以后,此刻给document添加onmousemove事件,意味着此刻鼠标在网页的移动都将改变目标元素的位置

3.在onmousemove事件中,设定目标元素的left和top,
公式
目标元素的left = 鼠标的clientX – (鼠标和元素的横坐标差,即offsetX)
目标元素的top = 鼠标的clientY– (鼠标和元素的纵坐标差,即offsetY)

4.当onmousedown发生以后,此刻给document添加onmouseup事件,意味着此刻鼠标在网页的任意位置松开鼠标,都会放弃拖拽的效果
在onmouseup事件中,取消document的onmousemove事件即可。

事件触发阶段主要由于事件流:DOM0级事件处理阶段和DOM2级事件处理;

DOM0级事件处理,是一种赋值方式,是被所有浏览器所支持的,简单易懂容易操作;

DOM2级事件处理是所有DOM节点中的方法,可以重复绑定,但是浏览器兼容存在问题;

非IE下:(这里的事件名不带on),第三个参数表示是在捕获阶段还是冒泡阶段。可以重复绑定事件,执行顺序按照绑定顺序来执行。

oDiv.addEventListener(‘click’,chick,false);

oDiv.removeEventListener(‘click’,chick ,false);

IE下:

只有冒泡阶段,所以没有第三个参数;(这里的事件名需要加on)

oDiv.attachEvent();

oDiv.detachEvent() ;

兼容问题解决:

var EventUtil={
addHandler:function(DOM,EventType,fn){
if(DOM.addEventListener){
DOM.addEventListener(EventType,fn,false);
}else if(DOM.attachEvent){
DOM.attachEvent(‘on’+EventType,fn)
}else{
DOM[‘on’+EventType]=fn
}
},
removeHandler:function(DOM,EventType,fn){
if(DOM.removeEventListener){
DOM.removeEventListener(EventType,fn,false)
}else if(DOM.detachEvent){
DOM.detachEvent(‘on’+EventType,fn)
}else{
DOM[‘on’+EventType]=null;
}
}
}
写一个完美拖拽的案例:

完美拖拽

点击回放拖动轨迹

Drag:false

offsetTop:231

offsetLeft:533

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值