2013-07-09 3 views
0

У меня есть слайдер, который я сделал с Javascript, но он не двигается совершенно правильно, он, похоже, ускоряется, а не остается той же скоростью, что и мышь.Div слайдер не двигается правильно с движением мыши

Я знаю его логическую ошибку, но я не могу понять, что я делаю неправильно, поэтому я надеюсь, что кто-то может заметить ошибку.

Функция, которая имеет дело с DIV это:

var calc = function (e) { 
    var dif = e.pageX - clickX; 
    var parentWidth = parseInt(window.getComputedStyle(el.parentNode).width); 
    var childWidth = parseInt(window.getComputedStyle(el).width); 
    var childLeft = parseInt(window.getComputedStyle(el).left); 
    var left = childLeft + dif; 

    if (left < 0) { left = 0; } 
    else if (left > (parentWidth-childWidth)) { left = (parentWidth-childWidth); } 

    el.style.left = left + 'px'; 
}; 

Я представил JSFiddle, а с ним в использовании: JSFiddle

ответ

2

Очень аккуратный виджет/реализации. Я обновил fiddle для правильной работы.

Добавлено

var dif = e.pageX - clickX; 
    clickX = e.pageX;// update clickX so next time you calculate the right dif 

, потому что в противном случае она была вычисления разности с самого начала, а не с момента последнего вычисленного разницу.

+0

Ah thankyou :)! – Sir

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