jquery实现div随着鼠标移动

jquery实现div随着鼠标移动

<!DOCTYPE html>
<html lang="zh-CN">
 
<head>
    <meta charset="utf-8" />
    <title>jquery实现鼠标拖拽div改变位置</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
    <style type="text/css">
        * {
            margin: 0;
            padding: 0;
        }
 
        #pic {
            width: 80px;
            height: 80px;
            position: absolute;
            left: 0;
            right: 0;
            background: red;
 
        }
 
        a {
            border: 1px solid red;
        }
    </style>
</head>
 
<body>
    <div id="pic">
 
    </div>
    <script type="text/javascript">
        var drag = function (obj) {
            obj.on("mousedown", start);
 
            function start(event) {
                console.log(event.button);
                if (event.button == 0) { //判断是否点击鼠标左键  
                    /*  
                     * clientX和clientY代表鼠标当前的横纵坐标  
                     * offset()该方法返回的对象包含两个整型属性:top 和 left,以像素计。此方法只对可见元素有效。  
                     * bind()绑定事件,同样unbind解绑定,此效果的实现最后必须要解绑定,否则鼠标松开后拖拽效果依然存在  
                     * getX获取当前鼠标横坐标和对象离屏幕左侧距离之差(也就是left)值,  
                     * getY和getX同样道理,这两个差值就是鼠标相对于对象的定位,因为拖拽后鼠标和拖拽对象的相对位置是不变的  
                     */
                    gapX = event.clientX - obj.offset().left;
                    gapY = event.clientY - obj.offset().top;
                    //movemove事件必须绑定到$(document)上,鼠标移动是在整个屏幕上的  
                    $(document).bind("mousemove", move);
                    //此处的$(document)可以改为obj  
                    $(document).bind("mouseup", stop);
 
                }
                return false; //阻止默认事件或冒泡  
            }
 
            function move(event) {
                obj.css({
                    "left": (event.clientX - gapX) + "px",
                    "top": (event.clientY - gapY) + "px"
                });
                return false; //阻止默认事件或冒泡  
            }
 
            function stop() {
                //解绑定,这一步很必要,前面有解释  
                $(document).unbind("mousemove", move);
                $(document).unbind("mouseup", stop);
 
            }
        }
        obj = $("#pic");
        drag(obj); //传入的必须是jQuery对象,否则不能调用jQuery的自定义函数  
    </script>
</body>
 
</html>

参考:https://blog.csdn.net/djh052900/article/details/123981158

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值