jq实现元素拖动函数,并让其不能超出父元素

本文介绍如何利用jQuery创建一个可拖动的元素,并确保它不会超出其父元素的边界。通过监听鼠标事件和计算偏移量,我们可以实现这一功能,提供更好的用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

obj1,obj3是jQuery对象。obj1是子元素的jQuery对象,obj3是父元素的jQuery对象。
var drag = function (obj1,obj3) {
    obj1.bind("mousedown", start);
    var x;
    var y;
    var gapX;
    var gapY;
    function start(event) {
        if (event.button == 0) {//判断是否点击鼠标左键
            gapX = event.clientX - obj1.offset().left + obj3.offset().left;//这是计算在减去鼠标相对于子元素的偏移量后,父元素相对于屏幕的横向距离。
            gapY = event.clientY - obj1.offset().top + obj3.offset().top;//与gapX同理
            //movemove事件必须绑定到$(document)上,鼠标移动是在整个屏幕上的
            $(document).bind("mousemove", move);
            //此处的$(document)可以改为obj
            $(document).bind("mouseup", stop);
        }
        return false;//阻止默认事件或冒泡
    }

    function move(event) {
        x = event.clientX - gapX;//用鼠标相对于屏幕的横向距离减去父元素相对于屏幕的横向距离
        y = event.clientY - gapY;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值