gpt4 book ai didi

JavaScript 原型(prototype)可拖动

转载 作者:行者123 更新时间:2023-12-02 20:15:46 25 4
gpt4 key购买 nike

使用原型(prototype),每次移动对象时,我都会尝试将 X 和 Y 增加 20px。我可以做这样的事情:

new Draggable('element', {snap:[20, 20]});

它会起作用,但是,我还需要使用以下方法限制拖动到元素的父节点:

new Draggable('element', {
snap: function(x, y, draggable) {
function constrain(n, lower, upper) {
if (n > upper) return upper;
else if (n < lower) return lower;
else return n;
}
var element = draggable.element.getDimensions( );
var parent = draggable.element.parentNode.getDimensions( );
return [
constrain((x + 20), 0, parent.width - element.width),
constrain((y + 20), 0, parent.height - element.height)
];
}
});

仅在第一次移动时我只能增加 20px,但随后它将增加 1px。谢谢

最佳答案

return [
constrain(Math.round(x/20)*20, 0, parent.width - element.width),
constrain(Math.round(y/20)*20, 0, parent.height - element.height)
];

关于JavaScript 原型(prototype)可拖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6333929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com