我正在编写一个允许用户移动和调整 div 大小的小脚本。我需要保持纵横比,我的逻辑不起作用。
function resizing() {
var currentHeight = elmnt.offsetHeight;
var currentWidth = elmnt.offsetWidth;
var newHeight = currentHeight + (event.pageY - currentY);
var newWidth = currentWidth + (event.pageX - currentX);
var ratio = currentWidth / currentHeight;
if(ratio < 1) {
newwidth = parseInt(newHeight * ratio);
}
else {
newheight = parseInt(newWidth / ratio);
}
elmnt.style.height = newHeight + "px";
elmnt.style.width = newWidth + "px";
currentY = event.pageY;
currentX = event.pageX;
}
脚本类型的作品。但不幸的是,它不能保持纵横比完全正确。有时,当我只调整水平线的大小时,旧的高度保持不变,有时它会起作用,但是一个长度会被调整大小并有一点偏移。
当我再次上下调整大小时,长度变得越来越相等,当它是一个合适的正方形时,一切都是正确的。
如何解决我的问题?我的谬误在哪里?!