javascript – 为什么getBoundingClientRect只能在本地工作?

前端之家收集整理的这篇文章主要介绍了javascript – 为什么getBoundingClientRect只能在本地工作?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

考虑以下HTML(JSFiddle link):

  1. Box">catBox rotate">catBox">

和CSS:

  1. .Box { font-size:500%; }
  2. .rotate { transform: rotate(-90deg); }

使用.getBoundingClientRect()测量元素id = a的宽度和高度

  1. $(a)[0].getBoundingClientRect().width
  2. $(a)[0].getBoundingClientRect().height

给出(320,91)的尺寸.在元素id = b上测量相同的东西给出了转置尺寸(91,320).精彩.

但是,当我尝试测量元素id = c时,它只是将旋转嵌入内部div中,我得到原始尺寸(320,91)! b和c的边界框不应该相同吗?

如果没有,我怎样才能让c的边界框正确报告?

如果相关,我使用的是Chromium,版本37.0.2062.120 Ubuntu 12.04(281580)(64位).

最佳答案
不,c中的旋转位延伸出c,而不改变其大小.这应该让它更清晰一些:

  1. var bBox_a = document.getElementById("a").getBoundingClientRect();
  2. snippet.log("a: " + bBox_a.width + "x" + bBox_a.height);
  3. var bBox_b = document.getElementById("b").getBoundingClientRect();
  4. snippet.log("b: " + bBox_b.width + "x" + bBox_b.height);
  5. var bBox_c = document.getElementById("c").getBoundingClientRect();
  6. snippet.log("c: " + bBox_c.width + "x" + bBox_c.height);
  1. .Box {
  2. font-size:500%;
  3. }
  4. .rotate {
  5. transform: rotate(-90deg);
  6. }
  7. #a {
  8. border: 1px solid black;
  9. }
  10. #b {
  11. border: 1px solid red;
  12. }
  13. #c {
  14. border: 1px solid green;
  15. }
  16. #c .rotate {
  17. border: 2px solid yellow;
  18. }
  1. Box">catBox rotate">catBox">
  2. Meta.stackexchange.com/a/242144/134069 -->

猜你在找的HTML相关文章