在canvas上平移图像后,工具提示无法在平移位置查看?

以下是我的代码供参考。

  1. 一个主要图像显示在canvas上。
  2. 在具有dataJSON对象的图像上,我传递x和y坐标并在那里绘制球图像。
  3. 然后添加工具提示。 (function tooltipFunc)
  4. 但是当我平移图像时,在hover时那些球图像上看不到工具提示。**
  5. tooltipFunc函数中, 如果代码是第一次加载页面时的默认位置。 当我们平移图像以显示工具提示时, 其他代码用于转换位置。
  6. 但是在平移之后,当鼠标hover在球图像上时,工具提示是不可见的。 当我点击那些球图像时,工具提示是可见的,但不在翻译位置。

有什么建议?

//以下是代码供参考

var isDown = false; var startCoords = []; var last = [0, 0]; canvas.onmousedown = function(e){ isDown = true; startCoords = [ e.offsetX - last[0], e.offsetY - last[1] ]; }; canvas.onmouseup = function(e){ isDown = false; last = [ e.offsetX - startCoords[0], // set last coordinates e.offsetY - startCoords[1] ]; //tooltipFunc(e); }; canvas.onmousemove = function(e){ tooltipFunc(e); //tooltip function if(!isDown) return; var x = e.offsetX; var y = e.offsetY; context.setTransform(1, 0, 0, 1, x - startCoords[0], y - startCoords[1]); draw1(scaleValue);//redrawing image on canvas while panning image } function tooltipFunc(e){ var translationX, translationY; var r = canvas.getBoundingClientRect(), x = e.clientX - r.left, y = e.clientY - r.top, i = 0, r, inTooltip = false; if((typeof startCoords[0] === 'undefined' || startCoords[0] === 'NaN') && (typeof startCoords[1] === 'undefined' || startCoords[1] === 'NaN')){ for (; r = dataJSON[i]; i++) { if (x >= parseInt(dataJSON[i].x[0] * scaleValue) + parseInt(scaleValue) && x = parseInt(dataJSON[i].y[0] * scaleValue) && y = parseInt(dataJSON[i].x[0] * scaleValue) + parseInt(translationX) + parseInt(scaleValue) && x = parseInt(dataJSON[i].y[0] * scaleValue) + parseInt(translationY) && y <= parseInt(dataJSON[i].y[0] * scaleValue) + parseInt(translationY) + parseInt(20/scaleValue)) { clearTooltip(); var newX = e.clientX - translationX; var newY = e.clientY - translationY showTooltip(newX, newY, i); inTooltip = true; } } } }