我希望能够在HTML 5画布中放大鼠标下的点,例如放大Google地图.我怎样才能做到这一点?
我在画布中实现了一个缩放功能,就像这样:放大一个点(使用缩放和平移)
现在我需要计算鼠标相对于画布的位置,我首先尝试这样:
var rect = this._canvas.getBoundingClientRect();
var x = ((event.clientX - rect.left) / (rect.right - rect.left) * this._canvas.width);
var y = ((event.clientY - rect.top) / (rect.bottom - rect.top) * this._canvas.height);
Run Code Online (Sandbox Code Playgroud)
这很好用,直到我缩放...我试着这样做:
var x = ((event.clientX - rect.left) / (rect.right - rect.left) * this._canvas.width) - this._canvas.offsetLeft ;
var y = ((event.clientY - rect.top) / (rect.bottom - rect.top) * this._canvas.height) - offset.top this._canvas.offSetTop ;
Run Code Online (Sandbox Code Playgroud)
任何提示?或者我应该更好地使用JS库与canvas元素进行交互?如果是这样,你有经验吗?