Проверьте это 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, который показывает положение мыши относительно окна,Кажется, это работает нормально, но я считаю, что в нормальной среде могут потребоваться некоторые незначительные изменения