Подтвердить что ты не робот

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/

4b9b3361

Ответ 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 принимает только целое число, без суффиксов или единиц.

Ответ 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);