2009-05-05 3 views
2

Страница необходимо прокрутить после нажатия на ссылку с идентификатором (пусть это будет #link).Fix jQuery scrolling

Вот мой код, который не работает:

$(document).ready(function(){ 
    $("#link").click(function() { 
     $(this).animate({ scrollTop: 2000 }, 'slow'); 
    }); 
}); 

Но это работает, после загрузки страницы он медленно прокручивает в нижней части страницы:

$(document).ready(function() { 
    $('html, body').animate({ scrollTop: 6000 }, 'slow'); 
}); 

Высота тела 6000 пикселей.

ответ

3

В вашем первом примере вы устанавливаете scrollTop фактического элемента ссылки, в котором нет прокрутки. (Без переполнения)

$(document).ready(function(){ 
    $("#link").click(function() { 
     $("body").animate({ scrollTop: 2000 }, 'slow'); 
    }); 
}); 

Hers довольно хорошее объяснение https://developer.mozilla.org/En/DOM/Element.scrollTop

+0

отлично работает со свитком сверху вниз. – Mike

+0

, но если ссылка расположена внизу (например, от 4000px верхнего угла), и я хочу прокрутить ее вверх, она прокручивается из «сверху-в-точку» (страница бросает вверх, а затем прокручивается вниз), но нужно прокручивать от «снизу до вершины» (от существующей точки, без метания). Pleeeease помогите мне исправить это – Mike

+0

, если вы хотите, чтобы он анимировал верхнюю часть снизу {scrollTop: 0} –

2

Похоже, вы пытаетесь оживить «это», что было бы ссылкой!

Вы должны попробовать $ (окно) .animate вместо этого! или, может быть, даже документ, извините, не уверен!

+0

спасибо, но «$ (окно) .animate «Не работает тоже – Mike

1

Ьгу $ ('HTML, тело'). Анимировать поддерживать все браузеры