JQuery - ScrollTop без анимации
Как использовать scrolltop без анимации
Этот код работает:
var offTop = $('#box').offset().top;
offTop = offTop-43;
$('#mainCt').animate({scrollTop: '+=' + offTop + 'px'}, 400);
И вот мои (неработающие решения):
$("#mainCt").scrollTop('+=' + offTop + 'px'); // doesn't work
$("#mainCt").scrollTop('+='+offTop); // doesn't work
hhh = setTimeout(' $("#mainCt").scrollTop('+offTop+');',800); // doesn't work
DEMO
http://jsfiddle.net/DNNFF/9/
Ответы
Ответ 1
может быть, если вы не хотите, чтобы анимация или что-то необычное, просто используйте якорь
<a name="top"></a>
Поместите его туда, где вам нужно прокрутить
и в вашей функции, где вы вызываете, используйте
document.location.href="#top";
Вы также можете создать функцию добавления якоря перед элементом, сделать document.location
вещь и позже удалить этот якорь.
http://jsfiddle.net/fSrxr/1/
Ответ 2
Попробуйте следующее:
var offTop = $('#box').offset().top - 43;
$('#mainCt').scrollTop(offTop);
Свойство scrollTop
принимает только целое число, без суффиксов или единиц.
Ответ 3
http://api.jquery.com/scrollTop/
$(window).scrollTop(offTop)
Ответ 4
Пропустить jQuery. Просто используйте JavaScript:
window.scroll(0, 0);
Ответ 5
Почему бы не использовать его с меньшей продолжительностью. Я искал его, и у него не было анимации. SInce не будет времени, чтобы увидеть анимацию, анимации вообще не будет.
var offTop = $('#box').offset().top;
offTop = offTop-43;
$('#mainCt').animate({scrollTop: '+=' + offTop + 'px'}, 50); //50 added here as duartion
Ответ 6
Вы не можете играть с продолжительностью?
var offTop = $('#box').offset().top;
offTop = offTop-43;
$('#mainCt').delay('800').animate({scrollTop: '+=' + offTop + 'px'}, 1);