2016-03-07 48 views
2

我必須製作可拖曳的svg元素(視口)。在其他元素的mousemove上移動svg視口

$('.zoom_panel').mousedown(function(e) { 
     if (!drag.state && e.which == 1) { 
      drag.elem = $('#graph_stage svg .viewport'); 
      drag.state = true; 
      currentX = $(drag.elem).offset().left; 
      currentY = $(drag.elem).offset().top; 
     } 
     return false; 
    }); 
    $('.zoom_panel').mousemove(function(e) { 
     if (drag.state) { 
      var attrs = $(drag.elem).attr('transform').split(' ')[1]; 
      dx = e.offsetX - $(drag.elem).offset().left; 
      dy = e.pageY - $(drag.elem).offset().top; 
      newMatrix = 'translate('+(dx)+','+(dy)+') '+attrs; 
      $(drag.elem).attr('transform',newMatrix); 

     } 
    }); 

svg沒有移動它的閃爍。 jsfiddle

回答

1

試試這個jsfiddle

試圖通過使用相對位置來設置DX。

dx = e.offsetX - currentX + currentdx; 
    dy = e.offsetY - currentY + currentdy; 
+0

工作就像魅力謝謝 –

相關問題