使用getBoundingClientRect()计算边界框使用swift top,left发出问题

时间:2015-05-19 11:51:21

标签: javascript jquery html css

我有一个绝对位置为target的div,我需要创建另一个div bb,它完全匹配/重叠 target的边界框。< / p>

以下脚本有效,但在80度相同的旋转下,div bb的位置不会保留。

我想知道:

  • 我的代码中出错了什么?如何解决?
  • 或者可能是问题getBoundingClientRect()?

注意:div bb的初始位置与div target匹配,我需要仅使用bb快捷CSS translate

http://jsbin.com/josufehano/1/ [铬]

问题可能出现在以下函数中,但任何其他反馈都非常感谢。感谢。

    calculate: function () {
        var elm = document.getElementById(this.config.target.id);
        var rect = elm.getBoundingClientRect();
        this.data.br.width = rect.width;
        this.data.br.height = rect.height;
        // calculate swift
        this.data.br.left = -Math.abs(this.data.br.width - this.data.width) / 2;
        this.data.br.top = -Math.abs(this.data.br.height - this.data.height) / 2;

    },

1 个答案:

答案 0 :(得分:0)

我使用以下脚本解决了我的问题。 基本上我需要它在计算top / left swift时考虑旋转。

http://jsbin.com/hejemixolu/1/

echo form_open('sites/MakeEdit/'.$site['ID'],$attributes,$hidden);