根據您當前的問題和你的請求的確認:
var x = termin.top + Math.cos(angle) * div.height;
var y = div.left + Math.sin(angle) * div.height;
該解決方案可以在這個其他SO Answer中找到一個不同的問題,提高這裏:
// return an object with full width/height (including borders), top/bottom coordinates
var getPositionData = function(el) {
return $.extend({
width: el.outerWidth(false),
height: el.outerHeight(false)
}, el.offset());
};
// get rotated dimensions
var transformedDimensions = function(el, angle) {
var dimensions = getPositionData(el);
return {
width: dimensions.width + Math.ceil(dimensions.width * Math.cos(angle)),
height: dimensions.height + Math.ceil(dimensions.height * Math.cos(angle))
};
};
這裏有一個互動 jsFiddle提供實時更新爲getPositionData();
功能。
您將能夠在您控制的CSS3旋轉過程結束時看到top
和left
值。
參考: jsFiddle
狀態更新:以上的jsfiddle的偉大工程0-90deg,可以在所有角度和不同的單位,如rad, grad, and turn批准。
刷新我的數學知識後,我想出了這樣的事情:var x = termin.top + Math.cos(angle)* div.height; var y = div.left + Math.sin(angle)* div.height;任何人都可以確認,如果這是正確的解決方案? – owca