1

问题出在标题上。它曾经在奇怪的场合这样做。然后我添加了 jQuery rotate.js 插件来旋转我的航向 360 度,现在它不断地放置在它应该在的位置的右​​侧。有趣的是,我得到了画布的偏移量

var rect = gameController.canvas.getBoundingClientRect();
var offset = {
    x: rect.left,
    y: rect.top
};

并且在它应该在的左上角仍然有 0,0 的坐标(这是正确的,当画布没有移动时它应该是怎样的)。

#canvas {
    z-index: 1;
    position: absolute;
    margin-top: 52px;
    margin-left: 44px;
    background-image:url(images/background.jpg);
}

如果位置是绝对的,它将从文档中删除,并且没有任何东西可以使它移动。奇怪的。

4

2 回答 2

1

getBoundingClientRect() returns the sum of the canvas and its css border-boxes.

Maybe check the canvas with getClientRects() to see exactly where it is.

于 2013-08-01T04:57:05.787 回答
0

我不确定它为什么会移动,我可能在某个地方有一个 css 错误..但是我的画布是绝对位置,相对于它在里面的一个 div。我将我的画布放在 body 标记的顶部,所以它相对于整个页面是绝对的,然后用顶部和底部更改它的位置以使其正确。现在什么都不会动它。它适用于 rotate.js 插件。感谢您查看我的问题。

于 2013-08-01T05:41:12.053 回答