jQuery实现鼠标拖拽事件

1、设置一个待拖动的元素,设置样式

  • linux
  • java
  • javascript
*{
            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为去掉一些默认事件,去掉会出现问题

你可能感兴趣的:(js)