2013-03-10 2 views
0

Я хочу прокрутить вниз до div на моей странице, а затем немного прокрутить вверх.прокрутка вверх/вниз jquery

используя jquery.

Я получил эту OnClick привязку:

{ 
$.scrollTo($('#theDestDiv'), 1000); 
window.scrollTo(0, (window.pageYOffset)-100); 
} 

Проблема заключается в следующем: window.scroll пожары до страницы заканчивает свиток theDestDiv , а затем pageYOffset получает неверное значение.

Я пробовал setTimeout, и это работает только в том случае, если таймаут занимает время, необходимое для прокрутки вниз.

Любые идеи, как исправить?

+0

Какой плагин scrollTo вы используете (поскольку есть более одного)? – tpeczek

+0

Не уверен в плагине, но этот вид работает: $ .scrollTo ($ ('# theDisclaimer'), 1000); $ ('html, body'). Animate ({scrollTop: '- = 50'}); Свиток достигает места назначения, а свитки - 50 пикселей вверх. если есть другой способ, без прокрутки дважды, пожалуйста, добавьте. –

ответ

1

Вы пытались использовать полную функцию обратного вызова jQuery? Вы можете запустить код после завершения анимации. Ниже приведен пример.

var scrollTo = $('#theDestDiv').offset(); //find the target 
$('html, body').animate({scrollTop:scrollTo}, 1000, function(){ 
    //on animation complete, scroll back up 
    var scrollUp = scrollTo.top-100; 
    $('html, body').animate({scrollTop:scrollUp}, 1000); 
}); 

Если вы пытаетесь дать ему своего рода «рикошета», я бы рекомендовал использовать jquery.easing плагин вместо этого. Ослабление, которое вы хотели бы использовать, - easyOutBack, чтобы анимация прошла свою конечную позицию и медленно возвращалась назад. http://gsgd.co.uk/sandbox/jquery/easing/

1
$.scrollTo($('#theDisclaimer'), 1000); 
scroll_up_disclaimer(); 

function scroll_up_disclaimer(){ 
    $("html, body").animate({scrollTop:"-=68"}) 
} 
Смежные вопросы