Заставить ползунок прокрутить страницу - PullRequest
2 голосов
/ 17 февраля 2012

У меня есть ползунок jQuery с абсолютным позиционированием на моей странице.С его помощью я хочу иметь возможность щелкать и перетаскивать страницу для прокрутки.

Вы можете увидеть это прямо сейчас здесь:

http://djlol.dk/projects/index2.html (белый внизу)

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

Я делаю это так:

$("#slider").slider({
  animate: true,
  change: handleSliderChange,
  slide: handleSliderSlide,
  min: 0,
  max:2900
});

function handleSliderSlide(e, ui)
{
  window.scroll(ui.value, 0);
}

1 Ответ

1 голос
/ 18 февраля 2012

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

Плагин слайдера вычисляет новую позицию обработчика слайдов по изменению положения мышки, а также по левому смещению элемента при каждом событии перемещения мыши. Ваш элемент-ползунок использует свойство css position:fixed, и при прокрутке окна браузера левое смещение элемента увеличивается, чтобы удерживать его в фиксированном положении. Таким образом, значение ползунка увеличивается не только при изменении мыши, но и при смещении влево при прокрутке окна. В результате получается быстро движущийся слайдер.

Чтобы исправить это, измените положение элемента ползунка на относительное и настройте верхнее и левое смещения. Однако это будет означать, что левый конец ползунка будет прокручиваться вне поля зрения при прокрутке окна, но, по крайней мере, ваш ползунок движется в нормальном темпе.

...