Перетаскивание событий мыши - PullRequest
0 голосов
/ 18 июня 2011

Работа над полосой прокрутки для игрока без хрома через YouTube.У меня есть функционал, работающий почти так же, как и I, как НО, когда я нажимаю, чтобы перетащить синюю кнопку «искатель» и перетащить ее, она возвращается в исходное положение , пока я не отпущу щелчок мыши.Как только я отпускаю, он запускает видео в соответствующей позиции и рисует индикатор выполнения в соответствующей позиции.код здесь: http://jsfiddle.net/VysBU/1/

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

Любая помощь приветствуется ... если вам нужно, чтобы я кое-что прояснил, дайте мне знать.

ПРИМЕЧАНИЕ: только что вспомнил ... он имеет тенденцию прыгать только на вертикальные движения мыши.то есть, если я перемещаю мышь по горизонтали, вообще не меняя ее вертикальное положение, она отлично «оживляет».если вертикальное положение действительно перемещается, «анимации» ошибочны.

1 Ответ

0 голосов
/ 18 июня 2011

Проверьте это http://jsfiddle.net/sz4FF/

Вам нужно остановить интервал

setInterval(animateProgress, 100); 

, когда вы начинаете поиск, и продолжить его, когда поиск прекращается.Причина, по которой он делает этот переход, заключается в том, что animateProgress вызывается и устанавливает ширину PlayBar и ищущего.

Я поспешно добавил его в глобальную функцию (window.TEST_INTERVAL) просто для проверки, будет ли он работать,и это делает.

(как инициализировать и очистить интервал)

clearInterval(TEST_INTERVAL);
TEST_INTERVAL = setInterval(animateProgress, 100); 

при поиске

function seeking(e){
        clearInterval(TEST_INTERVAL);

в рамках doneSeeking

function doneSeeking(e){
         TEST_INTERVAL = setInterval(animateBuffer, 250);

ОБНОВЛЕНИЕ: IE8 и ниже проблема

    mousePos  = e==undefined ? event.clientX : e.pageX;
    //get the position of the mouse
    //mousePos = e.pageX;

событие, возвращаемое onmousemove, равно "undefined" в ie7 и 8, таким образом мы проверяем для window.event.clientX, который показывает положение мыши относительно окна,Кажется, это работает нормально, но я считаю, что в нормальной среде могут потребоваться некоторые незначительные изменения

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