Javascript实现了一个简单的拖动效果。
拖动是一件非常酷的事情。你点击一个物体,按住鼠标,移动鼠标到另一个区域,然后释放鼠标按钮把物体放在这里。下面是一个简单的例子:
HTML部分:注意拖动元素必须绝对定义,即,位置=绝对值;
复制代码代码如下所示:
JS部分:
无功eventutil = { {
获取事件和目标
匀:功能(事件){
返回事件:window.event;
},
gettarget:功能(事件){
返回event.srcelement | | event.target;
},
添加监视器事件
AddEvent:功能(元素、类型、处理){
如果(元。addEventListener)
{
element.addeventlistener(类型、处理程序、错误);
如果(元。attachevent)}
{
element.attachevent(+型,处理程序);
}
},
取消/监视事件
DelEvent:功能(元素、类型、处理){
如果(元。removeEventListener)
{
element.removeeventlistener(类型、处理程序、错误);
如果(元。detachevent)}
{
element.detachevent(+型,处理程序);
}
}
}
Var DragDrop =函数(){()
判断DOM的元素正在被拖动标记。
var = null;
元素的左上角和鼠标指针之间的差异
diffx = 0;
diffy = 0;
功能HandleEvent(事件){
事件= eventutil.getevent(事件);
VaR目标= eventutil.gettarget(事件);
开关(事件类型){
案例鼠标:
/ /判断包含拖动属性类的DOM元素
如果(target.classname.indexof(拖动)> 1){
拖动=目标;
diffx = event.clientx - target.offsetleft;
diffy = event.clienty - target.offsettop;
}
打破;
案例鼠标移动:
如果(拖动)!= NULL){
target.style.left = event.clientx - diffx +PX;
target.style.top = event.clienty - diffy +PX;
}
打破;
案例MouseUp :
拖动= null;
打破;
}
}
返回{
启用:函数(){
eventutil.addevent(文件,mouseDown
eventutil.addevent(文件,MouseMove
eventutil.addevent(文件,MouseUp
},
禁用:函数(){
eventutil.delevent(文件,mouseDown
eventutil.delevent(文件,MouseMove
eventutil.delevent(文件,MouseUp
}
}
(});
dragdrop.enable();
我们这里需要解释一下diffx和diffy,代表该元素的左上角,鼠标指针的区别。
diffx = x的鼠标-元素对象的offsetleft坐标
diffy = Y坐标,鼠标的offsettop的元对象
以上是本文的全部内容,希望能对大家有所帮助。