您的位置:首页 > Web前端 > JavaScript

javascript——拖拽原理小实例

2015-03-23 16:59 239 查看
CSS代码:

#div1{ width: 100px; height: 100px; background: green; position: absolute;}


HTML代码:

<div id="div1"></div>


JS代码:

/*
onmousedown : 选择元素
onmousemove : 移动元素
onmouseup     : 释放元素
*/
window.onload = function(){

var oDiv = document.getElementById('div1');

//鼠标按下时
oDiv.onmousedown = function(ev){

var ev = ev || event;

// 获取鼠标点击时的距离位置
var disX = ev.clientX - this.offsetLeft;
var disY = ev.clientY - this.offsetTop ;

//鼠标移动时
document.onmousemove = function(ev){

var ev = ev || event;

oDiv.style.left = ev.clientX - disX + 'px';
oDiv.style.top = ev.clientY - disY + 'px';
};
//鼠标释放时
document.onmouseup = function(){
document.onmousemove = document.onmouseup = null;
}
};

};


 JS-demo2:

window.onload = function(){
/*
1.拖拽的时候,如果有文字被选中,会产生问题
原因:当鼠标按下的时候,如果页面中有文字被选中,那么会触发浏览器默认拖拽文字的效果
解决:
标准:阻止默认行为
非标准ie:全局捕获
*/
var oDiv = document.getElementById('div1');

oDiv.onmousedown = function(ev){

var ev = ev || event;

var disX = ev.clientX - this.offsetLeft;
var disY = ev.clientY - this.offsetTop;

if(oDiv.setCapture){
oDiv.setCapture();
}

document.onmousemove = function(ev){

var ev = ev || event;

oDiv.style.left = ev.clientX - disX + 'px';
oDiv.style.top = ev.clientY - disY + 'px';
};

document.onmouseup = function(){

document.onmousemove = document.onmouseup = null;

if(oDiv.releaseCapture){
oDiv.releaseCapture();
}
return false;
};

};

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐