美文网首页jQuery
jQuery 实现拖拽

jQuery 实现拖拽

作者: sky丶星如雨 | 来源:发表于2017-08-18 10:49 被阅读0次

    前一段时间写过一个js原生方法实现拖拽,现在用jQuery再来实现以下。
    其实,原理都是一样的。
    下面,我们来看代码。

    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>拖拽</title>
        <style>
            * {
                padding: 0;
                margin: 0;
            }
    
            div {
                width: 100px;
                height: 100px;
                background: #f00;
                cursor: pointer;
                position: absolute;
                left: 0;
                top: 0;
            }
        </style>
    </head>
    <body>
    <div></div>
    <script src="jquery.min.js"></script>
    <script>
        $(function () {
            // 鼠标按下时
            $('div').mousedown(function (e) {
                // 获取当前元素的 偏移量
                var positionDiv = $(this).offset();
                // 获取是否在当前事件下在当前元素上
                var distenceX = e.pageX - positionDiv.left;
                var distenceY = e.pageY - positionDiv.top;
                // 移动时
                $(document).mousemove(function (e) {
                    // 获取
                    var x = e.pageX - distenceX;
                    var y = e.pageY - distenceY;
                    if (x < 0) {
                        x = 0;
                    } else if (x > $(document).width() - $('div').outerWidth(true)) { // 判断是否超出浏览器宽度
                        x = $(document).width() - $('div').outerWidth(true);
                    }
                    if (y < 0) {
                        y = 0;
                    } else if (y > $(document).height() - $('div').outerHeight(true)) { // 判断是否超出浏览器高度
                        y = $(document).height() - $('div').outerHeight(true);
                    }
                    // 设置left值和top值
                    $('div').css({
                        'left': x + 'px',
                        'top': y + 'px'
                    });
                });
                // 解绑事件
                $(document).mouseup(function () {
                    $(document).off('mousemove');
                });
            });
        });
    </script>
    </body>
    </html>
    

    相关文章

      网友评论

        本文标题:jQuery 实现拖拽

        本文链接:https://www.haomeiwen.com/subject/mqemrxtx.html