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

Javascript 在画布上平移图像后,工具提示无法查看平移位置?,javascript,jquery,canvas,3d,2d,Javascript,Jquery,Canvas,3d,2d,以下是我的代码供参考 一个主要图像显示在画布上 在带有dataJSON对象的图像上,我传递x和y 坐标和画球的图像 然后添加工具提示(功能工具提示FUNC) 但当我平移图像时,这些图像上的工具提示不可见 球在悬停** 在tooltipFunc函数中,如果代码为默认位置,则 页面首次加载。而其他代码用于翻译位置 当我们平移图像以显示工具提示时 但在平移之后,当鼠标悬停在球的图像上时,工具提示是 看不见。当我单击这些球图像时,工具提示是 可见,但不在平移位置 有什么建议吗? //以下是参考代码 va

以下是我的代码供参考

  • 一个主要图像显示在画布上
  • 在带有dataJSON对象的图像上,我传递x和y 坐标和画球的图像
  • 然后添加工具提示(功能工具提示FUNC)
  • 但当我平移图像时,这些图像上的工具提示不可见 球在悬停**
  • tooltipFunc函数中,如果代码为默认位置,则 页面首次加载。而其他代码用于翻译位置 当我们平移图像以显示工具提示时
  • 但在平移之后,当鼠标悬停在球的图像上时,工具提示是 看不见。当我单击这些球图像时,工具提示是 可见,但不在平移位置
  • 有什么建议吗?

    //以下是参考代码

    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].x[0] * scaleValue) + parseInt(20/scaleValue) && y >= parseInt(dataJSON[i].y[0] * scaleValue) && y <= parseInt(dataJSON[i].y[0] * scaleValue) + parseInt(20/scaleValue)) {
                            clearTooltip();
                            showTooltip(e.clientX, e.clientY, i);
                            inTooltip = true;
                        }
                    }
            }
            else{           
                for (; r = dataJSON[i]; i++) {                  
                    translationX = parseInt(x) - parseInt(startCoords[0]);
                    translationY = parseInt(y) - parseInt(startCoords[1]);
    
                        if (x >= parseInt(dataJSON[i].x[0] * scaleValue) + parseInt(translationX) + parseInt(scaleValue) && x <= parseInt(dataJSON[i].x[0] * scaleValue) + parseInt(translationX) + parseInt(20/scaleValue) && y >= 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;
    
                    }
    
                }
            }
        }
    
    var isDown=false;
    var startCoords=[];
    var last=[0,0];
    canvas.onmousedown=函数(e){
    isDown=真;
    startCoords=[
    e、 offsetX-上一个[0],
    e、 offsetY-最后一个[1]
    ];
    };
    canvas.onmouseup=函数(e){
    isDown=假;
    最后=[
    e、 offsetX-StartWord[0],//设置最后一个坐标
    e、 offsetY-StartWord[1]
    ];
    //工具提示函数(e);
    };
    canvas.onmousemove=函数(e){
    tooltipFunc(e);//tooltip函数
    如果(!isDown)返回;
    var x=e.offsetX;
    变量y=e.offsetY;
    setTransform(1,0,0,1,x-startWord[0],y-startWord[1]);
    draw1(scaleValue);//平移图像时在画布上重新绘制图像
    }
    函数tooltipFunc(e){
    变量translationX,translationY;
    var r=canvas.getBoundingClientRect(),
    x=e.clientX-r.left,
    y=e.clientY-r.top,
    i=0,
    R
    inTooltip=false;
    如果((星字类型[0]=='undefined'| |星字[0]=='NaN')&((星字类型[1]=='undefined'| |星字类型[1]=='NaN')){
    对于(;r=dataJSON[i];i++){
    
    如果(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(dataJSON[i].y[0]*scaleValue)+parseInt(translationY)&&y没有人有答案/提示/想法?