Брэда M в об использовании setTimeout
является одним из способов, чтобы получить то, что вы хотите. scrollTop()
не входит в число «эффекта», предоставляемого jQuery, и поэтому на него не влияет delay()
, потому что delay()
влияет только на эффекты.
Однако, можно использовать animate()
сделать эффект из прокруткой, например, следующие должны анимировать скроллинг:
$scrollable.animate({scrollTop: x});
Поскольку animate()
является «эффект», она должна быть затронута delay()
, Таким образом, вы можете сделать:
$scrollable.delay(3000).animate({scrollTop: x});
Однако, есть еще одна проблема, вы столкнулись с: когда scrollTop(x)
называется x
является абсолютное значение, не родственник один. Вызов scrollTop(+300)
в точности совпадает с вызовом scrollTop(300)
. Символ +
не имеет особого значения в этом контексте. Если вы хотите, чтобы ваша прокрутка была относительной, вам нужно сначала получить предыдущее значение scrollTop и добавить к нему относительное расстояние, которое вы хотите прокрутить. Например,
$scrollable.delay(3000).animate({scrollTop: $scrollable.scrollTop() + 300});
Это fiddle ставит вышеуказанные принципы работы.
Спасибо, это избавит меня. У вас также есть идея для прокрутки? – luukgruijs
мой код сейчас: $ ('# scroll').нажмите (функция() {\t \t \t задержка вар = 3000; \t \t \t \t \t \t \t SetTimeout (функция() { \t \t \t \t \t $() scrollTop (300) 'vluchtelinginfo.';. \t \t \t \t}, задержка); \t \t \t}); – luukgruijs