2013-04-30 1 views
0

Я пытаюсь сделать свою собственную маленькую карту, у меня есть что-то работающее до сих пор в холсте, единственная проблема в том, что когда я перетаскиваю карту, она ограничена тем, насколько мышь может двигаться на холсте, мне нужно быть можно щелкнуть и перетащить, а X, Y продолжить с того места, где находится мышь, в настоящее время он устанавливает X, Y только движение мыши, надеюсь, что я ясно дал понять, вот скрипка, чтобы понять, что я имею в виду:Как прокрутить стиль холста google на холсте?

http://jsfiddle.net/h7rYt/

И мой код для обработки перемещения изображения на перетаскивание:

can.onmousemove = function(e) { 
    if (map.moving) { 
     console.log(e.pageX + ' ' + e.pageY); 
     map.posX = e.pageX; 
     map.posY = e.pageY; 
    } 
} 

can.onmousedown = function() { 
    map.moving = true; 
} 

document.onmouseup = function(e) { 
    map.moving = false; 
} 

ответ

0

Вам нужно сохранить самую последнюю позицию мыши и применять различия от нее каждый раз. См. http://jsfiddle.net/SMQZk/

can.onmousemove = function(e) { 
    if (map.moving) { 
     console.log(e.pageX + ' ' + e.pageY); 
     map.posX += e.pageX - map.lastX; 
     map.posY += e.pageY - map.lastY; 
     map.lastX = e.pageX; 
     map.lastY = e.pageY; 
    } 
} 

can.onmousedown = function(e) { 
    map.lastX = e.pageX; 
    map.lastY = e.pageY; 
    map.moving = true; 
} 

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

  • Нет связанных вопросов^_^