ユーザーが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;
}
スクリプトのような作品。ただし、残念ながら、アスペクト比が完全に正しく保たれるわけではありません。時々、horizontylだけのサイズを変更すると、古い高さは同じままで、機能することもありますが、1つの長さが少しオフセットしてサイズ変更されます。
上下左右にサイズを変更すると、長さがどんどん等しくなり、適切な正方形であれば、すべてが正しくなります。
問題を解決するにはどうすればよいですか?私の誤謬はどこにありますか?