1、设置一个待拖动的元素,设置样式
<ul>
<li>linux</li>
<li>java</li>
<li>javascript</li>
</ul>
*{
margin:0;
padding:0;
}
ul{
list-style: none;
background-color: grey;
color:white;
width:65px;
height:70px;
padding:10px;
position: absolute;
}
2、给当前元素绑定一个鼠标点下去事件
计算鼠标点击位置和元素离最左上角的相对位置,
并给document对象绑定一个鼠标移动事件,当鼠标移动时,将该元素带动到鼠标所在位置
最后给document对象绑定一个鼠标松开事件,解绑鼠标移动事件和鼠标松开事件
js代码如下所示:
$('ul').mousedown(function(event){
deltax = event.clientX - $(this).offset().left
deltay = event.clientY - $(this).offset().top
$(document).bind('mousemove',start)
$(document).bind('mouseup',end)
return false
})
function start(event){
x = event.clientX - deltax
y = event.clientY - deltay
$('ul').css({'left':x+'px','top':y+'px'})
return false
}
function end(event){
$(this).unbind('mousemove')
$(this).unbind('mouseup')
}
两个return false为去掉一些默认事件,去掉会出现问题