【问题标题】:Position of html canvas on web pagehtml画布在网页上的位置
【发布时间】:2014-04-11 00:55:22
【问题描述】:

我有一个类似于 dottydots 的基于画布的脚本。它工作正常,但我想改变它的画布位置。我试过这个职位:绝对。它可以工作,但它只会移动画布的可视区域。我的意思是画布的工作区域(我们使用鼠标指针在画布上做某事的地方)保持在旧位置。

【问题讨论】:

  • 你有代码吗?还是 JSfindle 例子?
  • 是的,您可以在我网站的徽标上看到我当前的工作区域。 [链接]mr-saini.cu.cc@Arthur
  • 我正在使用这个代码

标签: javascript css html canvas html5-canvas


【解决方案1】:

我猜您在检索鼠标右键时遇到了问题。
您必须使用 getBoundingClientRect 才能使它们正确。

所以,如果您没有在 css 中使用 with/height 来缩放画布,那么 公式将是:

var mousePos   = [-1, -1];
var canvasRect, canvasLeft, canvasTop
function updateCanvasRect() {
    canvasRect = canvas.getBoundingClientRect();
    canvasLeft = canvasRect.left;
    canvasTop  = canvasRect.top ;
}
function updateMousePos(e) {
   mousePos[0] = e.clientX - canvasLeft;
   mousePos[1] = e.clientY - canvasTop ;
}

你必须打电话

更新画布矩形

加载文档后,如果允许滚动,然后滚动。

【讨论】:

  • 脚本正在运行,但问题仅出在画布位置。鼠标指针仅从屏幕的 top.right 部分响应画布。但画布位于屏幕的中心。我想要两者他们在同一个位置......你可以在我的网站的标志中看到mr-saini.cu.cc@gamealchemist
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-01
  • 2014-01-20
  • 2018-05-28
  • 2017-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多