событие onmousedrag js - PullRequest
       2

событие onmousedrag js

3 голосов
/ 25 июля 2011

У меня есть некоторый код, который работает каждый раз при нажатии мыши и постоянно при перемещении, когда я устанавливаю их соответствующим образом. Я ищу способ объединить два (например, щелчок и перетаскивание), который, как я думал, будет простой задачей, но не может найти никакого простого объяснения. Самое близкое, что я получаю, это уроки перетаскивания.

Нужно ли вызывать событие onmousemove, когда событие onmouseclick запущено? Или есть что-то действительно простое, что я полностью упускаю из виду?

Приветствия

Ответы [ 5 ]

10 голосов
/ 25 июля 2011

Возможно, вы захотите использовать только такой флаг: http://jsfiddle.net/n3MeH/.

var isMouseDown = false;
document.onmousedown = function() { isMouseDown = true  };
document.onmouseup   = function() { isMouseDown = false };
document.onmousemove = function() { if(isMouseDown) { /* do drag things */ } };
4 голосов
/ 25 июля 2011

Вы можете попробовать что-то вроде этого:

var div = document.getElementById('ex');

div.onmousedown = function(){
    document.onmousemove = function(e){
        div.innerText = '('+e.pageX +', '+e.pageY+')';
    }
    document.onmouseup = function(e){
        div.innerText = 'Click Me!';
        document.onmousemove = function(){};
    }
}

Он связывает события mousemove и mouseup документов в файле divs mousedown.

http://jsfiddle.net/Paulpro/cSKq2/

0 голосов
/ 28 августа 2015

Если вы не хотите использовать глобальную переменную для перетаскивания, вы можете использовать event.buttons для определения, какая кнопка мыши нажата.

Я тестировал этот код в Chrome и Firefox.

document.onmousemove = function(event) {
    if(event.buttons == 1) { //dragged with left mouse button
        //your code
    }

    if(event.buttons > 0) { //dragged with any mouse button
        //your code
    }
}
0 голосов
/ 25 июля 2011

действительно просто ... Я надеюсь:)

когда срабатывает событие mousedown, установите для глобальной переменной «перетаскивания» значение true. Затем при срабатывании mouseup установите значение false.

0 голосов
/ 25 июля 2011

, если я правильно понимаю, я думаю, что вы просто хотите разбить ваши onmouseclick на onmousedown и onmouseup (например, установить перетаскиваемый бул, а затем вернуть его мышью вверх ... но так как вы сказали, ближе всего вы нашли информацию о перетаскивании, может быть, вы имеете в виду что-то еще?)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...