我如何限制可拖动区域?它在顶部和左侧起作用,但不在右侧和底部起作用

问题描述 投票:0回答:1

所以我试图阻止draggable正文中的overflowing内容。

作品在顶部和左侧。

不能限制右侧和底部。

            e.pageX -= e.offsetX;
            e.pageY -= e.offsetY;

            // left/right constraint
            if (e.pageX - dragoffset.x < 0) {
                offsetX = 0;
            } else if (e.pageX + dragoffset.x > document.body.clientWidth) {
                offsetX = document.body.clientWidth - e.target.clientWidth;
            } else {
                offsetX = e.pageX - dragoffset.x;
            }

            // top/bottom constraint

            if (e.pageY - dragoffset.y < 0) {
                offsetY = 0;
            } else if (e.pageY + dragoffset.y > document.body.clientHeight) {
                offsetY = document.body.clientHeight - e.target.clientHeight;
            } else {
                offsetY = e.pageY - dragoffset.y;
            }   

            el.style.top = offsetY + "px";
            el.style.left = offsetX + "px";
        }
    });
};

此外,我的div拖动时也变得glitchy。仅当选择其中的文本时,它们才在右侧和底部停止。

javascript java object overflow draggable
1个回答
0
投票

我假设由于可拖动项是dom元素,所以当向右或向下移动时,它将推动主体的宽度和高度,这会改变主体的大小,因此使用主体的大小可能不是正确的方法。也许您可以使用window.widthwindow.height左右限制可拖动项目无法更改的值的区域。希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.