2011-02-01 3 views
0

Кто-то разместил это в прошлом, поэтому я заново его опубликую, учитывая, что мне бы хотелось посмотреть, есть ли какие-то пользовательские сценарии там с этой функциональностью. Осмелюсь сказать, так что я не должен закодировать это сам: PScrollTo Anchor Element при загрузке документа

Отрывок из this SO post: «Я уже знаю, плагин JQuery ScrollTo, но я не нашел способ до сих пор реализовать следующее:

пользователи попадает на мой сайт (печатая, НЕ, нажав на ссылку на мою страницу) domain.com/bla.php#foo

и якорь «#foo» существует. Теперь я хочу, чтобы браузер пользователя НЕ автоматически прокручивается до «#foo», вместо этого я хочу плавно прокручивать, так что элемент «#foo» находится в середине представления, а НЕ - в абсолютной верхней позиции пользователя.

Спасибо!

+0

Угадайте, что единственная истинная работа заключается в том, чтобы прикрепить что-то к механизму прокрутки, противоположному попытке самостоятельно обработать элемент привязки. Если страница не будет привязана к якорю, пока она не будет полностью загружена. Достаточно времени, чтобы привязать механизм прокрутки к скрипту. – DoctorLouie

ответ

1

Вы можете взломать это решение. Добавьте скрипт прямо, чтобы захватить текущее местоположение. Установите scrolltop в верхнюю часть страницы, затем добавьте блок jQuery.ready (scrollTo) для загрузки страницы.

Реализация псевдокода заключается в следующем.

<head> 
    <script src="jquery.js"> 
    <script> 
    var loc = window.location; 
    var anchor = getAnchor(loc); 
    if (anchor !== undefined) { 
     removeAnchor(loc, anchor); 
     scrollTo(0); 
     $.ready(function() { 
     $.scollTo(anchor); 
     }); 
    } 
    </script> 
    ... 

Надеюсь, что это произойдет, прежде чем браузер сможет привязаться к якорю. Он может работать или не работать. Не стесняйтесь использовать его сами.

+0

Поскольку ты единственный, кто пришел близко, я дам тебе большие пальцы: P – DoctorLouie

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