javascript - CSS3 rotate3d pr rotateX 获取元素的实际高度

标签 javascript css css-transforms perspective

我想在 x 轴上旋转 3d 时获得元素的实际高度。我将尝试用下面的图形来解释:

元素的正常高度:200px enter image description here

100px 视角旋转 45 度时实际高度为 118px: enter image description here

1000px视角旋转45度实际高度为138px: enter image description here

计算此高度值的常规公式(无透视):

x = h * sin( Angular )

使用此公式高度必须为 142px。但它与这个值不同。可能透视会改变高度。但是我没有找到任何计算这个高度的公式。

有人知道吗?

最佳答案

我受益于 efe的注释和计算的旋转元素的实际 View 高度。

djjeck上有解决方案的技术说明的 answer .

您可以通过示例查看此问题的答案:http://jsfiddle.net/TqJJL/3/

用这段代码计算实际高度:

// initial coordinates
var A = 0;
var B = width; // default size of element
// new coordinates
A = calc(A, angle*Math.PI/180, p);
B = calc(B, angle*Math.PI/180, p);
// translate back
A += width/2;
B += width/2;
if(B < A) { var tmp = A; A = B; B = tmp; } // swap

var realHeight = B-A;

function calc(oldx, angle, p) {
    var x = Math.cos(angle) * oldx;
    var z = Math.sin(angle) * oldx;

    return x * p / (p+z);
}

关于javascript - CSS3 rotate3d pr rotateX 获取元素的实际高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20837055/

相关文章:

twitter-bootstrap - 使用 css3 转换的 Bootstrap 翻转卡

html - CSS 导航菜单 :after element disappearing on mouse out

javascript - 一个 javascript 文件会杀死所有其他文件。避免这种情况的方法?

javascript - typescript :为什么不将 'this' 视为 Javascript?

javascript - 如何在 javascript 或 jquery 中将键添加到数组中的对象

PHP 图片在上传到指定目录之前调整大小

html - 在 HTML 标签样式中“{...}{ :active . .. } 不起作用?

javascript - 使用 bootstrap 选项卡时如何修复 Google 图表的高度和宽度?

css - 为什么我的 DIV 会改变我的光标?

css - 使用 matrix3D 创建立方体,作为多个变换的替代方法?