900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > html拖拽页面特效 div+css实现网页模块或栏目拖动(即拖拽效果)

html拖拽页面特效 div+css实现网页模块或栏目拖动(即拖拽效果)

时间:2020-11-03 02:40:18

相关推荐

html拖拽页面特效 div+css实现网页模块或栏目拖动(即拖拽效果)

//为Number增加一个属性,判断当前数据类型是否是数字

Number.prototype.NaN0=function(){return isNaN(this)?0:this;}

//全局变量

var iMouseDown=false;

var dragObject=null;

//获得鼠标的偏移量(对象2-对象1)

function getMouseOffset(target,ev)

{

ev=ev||window.event;

var docPos=getPosition(target);

var mousePos=mouseCoords(ev);

return {x:mousePos.x-docPos.x,y:mousePos.y-docPos.y};

}

//获得事件发生的实际位置----------------------对象1

function getPosition(e)

{

var left=0;

var top=0;

//相对位置累加得到实际位置

while(e.offsetParent)

{

left+=e.offsetLeft+(e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);

top+=e.offsetTop+(e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);

e=e.offsetParent;

}

left+=e.offsetLeft+(e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);

top+=e.offsetTop+(e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);

return {x:left,y:top};

}

//获得发生事件鼠标的位置----------------------对象2

function mouseCoords(ev)

{

if(ev.pageX||ev.pageY)

{

return {x:ev.pageX,y:ev.pageY};

}

return {x:ev.clientX+document.body.scrollLeft-document.body.clientLeft,y:ev.clientY+document.body.scrollTop-document.body.clientTop};

}

//定义可以拖拽的对象

function makeDragable(item)

{

if(!item) return;

//为可拖拽对象定义一个onmousedown事件的方法

ev=window.event;

item.οnmοusedοwn=function(ev)

{

dragObject=this;

mouseOffset=getMouseOffset(this,ev);

return false;

}

}

//定义鼠标点下所调用的方法

function mouseDown(ev)

{

ev=ev||window.event;

var target=ev.target||ev.srcElement;

if(target.onmousedown||target.getAttribute('DragObj'))

{

return false;

}

}

//鼠标抬起后释放对象

function mouseUp(ev)

{

dragObject = null;

//onmouseup事件触发时说明鼠标已经松开,所以设置down变量值为false

iMouseDown = false;

}

//鼠标移动

function mouseMove(ev)

{

ev=ev||window.event;

var target = ev.target || ev.srcElement;

var mousePos = mouseCoords(ev);

if(dragObject)

{

if(dragObject.style)

{

//移动对象

dragObject.style.left=mousePos.x - mouseOffset.x;

dragObject.style.top= mousePos.y - mouseOffset.y;

}

}

//lMouseState = iMouseDown;

if(dragObject) return false;

}

document.οnmοusedοwn=mouseDown;

document.οnmοusemοve=mouseMove;

document.οnmοuseup=mouseUp;

function moveImg()

{

var img1=document.getElementById('img1');

makeDragable(img1);

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。