2012-01-25 6 views
1

Я хочу решение, используя хэштег, указывающий на имя тега привязки или javascript.Окно прокрутки без перехода (javascript или hashtag)

В настоящее время я использую JavaScript window.scroll(0, 20000);. Проблема в том, что это приводит к тому, что окно дрожит, когда пользователь приходит на страницу.

Я знаю, что есть анимации jQuery, которые делают это движение более постепенным. Однако, что я хочу, это то, что делает движение окна незаметным для пользователя. Я хочу быть таким, как если бы пользователь приземлился в нижней части страницы.

+3

Это сложно выполнить. Размер вашей страницы, объем обработки JavaScript, а также возможность динамически загружаемого контента, все это влияет на начальную загрузку и поведение на странице. Моя кишка говорит, что вы должны попытаться использовать якоря с идентификаторами и хэштегами в ваших URL-адресах, способом ol, но похоже, что вы уже это пробовали. –

+0

Hashtags - это система тегирования твиттера. Это [идентификаторы фрагментов] (http://en.wikipedia.org/wiki/Fragment_identifier). – Quentin

ответ

2

Проблема, с которой вы сталкиваетесь, заключается в том, что вы хотите перейти к нижней части своей страницы, которая еще не загружена. Я бы подумал о загрузке страницы в скрытом формате, а затем показать ее, когда она загружена, и после прокрутки пользователя в нужном месте. Используйте фокус или прокрутите список до методов.

Посмотрите на сайт группы нитей.

http://filamentgroup.com/

они скрывают страницу с экрана загрузки, пока он не будет готов.

Таким образом, нет рывков.

Надеюсь, это поможет.

+0

Когда я пытаюсь сделать это таким образом, новый контент, отбрасывающий старый контент и свиток, не удерживается. Если есть способ, которым я мог бы привязать его в нижней части страницы, это было бы идеально. – Spencer

0

В цикле он работает, если страница полностью загружена и показано:

for(var n=0;n<1000;n++) window.scrollBy(0,20); 

(Обратите внимание, что 20 * 1000 = 20000, который был оригинальным местом для прокрутки.)

+0

Когда вы говорите, что это работает, что вы имеете в виду? Этот код все еще дает мне одно и то же отрывистое движение. – Spencer

+0

«Это» означает прокручивание-заявление, извините за мой плохой английский. Вы уверены, что ваша страница полностью загружена до вызова этого заявления? А также полностью отображается в браузере? Если ваша страница очень велика, браузер работает долго после того, как она активировала onload-событие. – Teemu

0

ответ Теему в Безразлично Кажется, я работаю для меня (он идет прямо на дно, делая цикл с scrollBy степпинг невидимым), потому что он не реализует задержку.

Если вы имеете в виду, чтобы оживить сверху вниз страницы в 1000ms, попробовать что-то еще вроде этого:

for (var n = 0; n < 1000; n += 1) { 
    setTimeout(function() { 
     window.scrollBy(0, document.height/1000); 
    }, n); 
} 

Это даст 1 секунду (1000мс) анимации, прокрутка вниз примерно в 1000 шагов.

Смежные вопросы