2016-03-07 2 views
2

Мне нужно сделать элемент svg с возможностью перетаскивания (viewport).Переместить svg viewport на mousemove другого элемента

$('.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 = e.offsetX - currentX + currentdx; 
    dy = e.offsetY - currentY + currentdy; 
+0

Работайте как очарование –

Смежные вопросы