动态计算div位置

时间:2018-02-05 23:26:44

标签: javascript html css ecmascript-6 position

寻求建立一个桌子座位/规划应用程序。目前有一个圆桌会议,我可以使用stackoverflow上找到的代码动态添加椅子。功能是计算桌子周围每个座位的x,y绝对位置。

https://www.dropbox.com/s/4kvb0vre0dwtc0i/table.mov?dl=0

视频显示了我到目前为止所获得的内容。

对任何对此代码感兴趣的人都是

export const calcRoundDimensions = (totalChairs, chairSize) => {
    var chairspos = [];

    var squareSize = chairSize * 2;

    for (var i = 0; i < totalChairs; i++) {
        var top = String(squareSize/2 + (-squareSize/2-chairSize) * Math.cos((360 / totalChairs / 180) * (i + 0) * Math.PI)) + 'px';
        var left = String(squareSize/2 + (squareSize/2+chairSize) * (true ? Math.sin((360 / totalChairs / 180) * (i + 0) * Math.PI) : -Math.sin((360 / totalChairs / 180) * (i + 0) * Math.PI))) + 'px';
        chairspos.push({top:top, left:left});
    }

    return {chairpos:chairspos, size:squareSize+chairSize};
}

我希望用正方形做同样的事情(也是长方形的,但首先是第一件事。)

方形表将是固定宽度(150px)。我看起来也能顺时针添加椅子,让它们在侧面居中。 (将会有12或16个主席限制,但这不应该是我想的。)

矩形表的两端都有一把椅子,然后可以在每个较长的一端添加5或6把椅子。

搜索了网站,但无法找到更多方向。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

不是很清楚您需要什么,但以下将获得元素的位置与页面的绝对顶部和左侧相比:

const box = element.getBoundingClientRect();
const elementPosition = {
  x:box.x+window.scrollX,
  y:box.y+window.scrollY
};