Как узнать, что левая клавиша мыши не зажата
Делаю элемент, который можно растягивать.
var mousedown;
document.addEventListener('mousemove', function(){
if( mousedown /* && вот здесь нужно как-то узнать, что клавиша мыши не зажата */) {
resizeDiv();
}
});
el.addEventListener('mousedown', function(){
mousedown = true;
});
el.addEventListener('mouseup', function(){
mousedown = false;
});
Проблема в том, что если человек зажимает левую клавишу мыши, доводит курсор до области, выходящей за рамки окна, отпускает её, затем снова возвращает курсор в окно, то скрипт "считает", что клавиша всё еще зажата и элемент, предназначенный для масштабирования "ходит" вместе с курсором, пока снова не вызовется событие mouseup. Надеюсь, что всё понятно объяснил. Как решить эту проблему? (Код сильно упростил, поэтому возможны ошибки) |
<body>
<div id="test">test</div>
<script>
document.getElementById('test').addEventListener('mousedown', function(e){
document.body.appendChild(document.createTextNode('|down'));
e.preventDefault();
document.addEventListener('mouseup', function mouseup(){
document.body.appendChild(document.createTextNode('|up'));
document.removeEventListener('mouseup', mouseup, false)
},false)
}, false);
</script>
</body>
Ну и там ещё по надобности всякие драг-дропы отменить. |
Я наверно плохо объяснил, минуту.
|
1. http://my.jetscreenshot.com/6628/20120204-7v41-9kb — зажимаю клавишу.
2. http://my.jetscreenshot.com/6628/20120204-fitx-66kb — переношу курсор, отпускаю клавишу 3. http://my.jetscreenshot.com/6628/20120204-7v41-9kb — снова навожу |
Цитата:
|
FINoM,
Ну ваще у меня нет это паршивой строки от windows, возможно конечно она творит такие чудеса, но например ФФ пофиг где вы отпускаете клавишу, если событие весит на документе - оно сработает. Если вы используете другой браузер, например Хром и у вас это не работает, попробуйте отлавливать потерю фокуса у окна в то время, когда клавиша была зажата. Должно помочь. |
if (event.which == 1) // если нажата левая клавиша 1 - левая 2 - колесик 3 - правая Вроде так, кажется я ответил только на название темы )) А в каком браузере не обрабатывается Апп вне браузера? |
если растягиваемый элемент в контейнере, то может можно в mousemove проверить координаты мыши и сравнить с координатами контейнера)
|
Magneto,
человеку не кнопка нужна а её состояние |
Цитата:
Цитата:
|
| Часовой пояс GMT +3, время: 01:22. |