Javascript Scroll Past Hash - PullRequest
       0

Javascript Scroll Past Hash

1 голос
/ 18 апреля 2011

У меня есть фиксированный div в верхней части моей страницы и список ссылок несколько дальше вниз по странице. Есть ссылка, по которой пользователь может щелкнуть, которая запускается по клику:

function setOffset(){   
location.hash = offset;  //where offset is some number I want as the hash  
scrollTo(0, 40);  
}  

То, что я хочу сделать, это перейти к хешированной ссылке, а затем прокрутить лишние 40, чтобы вывести элемент в поле зрения и выйти из-под фиксированного div. Проблема в том, что scrollTo переходит на верх страницы и убивает хеш. У кого-нибудь есть идеи?

1 Ответ

0 голосов
/ 18 апреля 2011

http://www.w3schools.com/jsref/met_win_scrollto.asp

scrollTo (xPos, yPos)

Итак, в вашем коде:

scrollTo(0, 40);

говорит, что нужно прокрутить до x-позиции 0 (чтослева) и y-позиция 40 (что на 40 пикселей ниже сверху).Вам нужно будет вычислить положение вашего хэша, а затем добавить к нему 40, чтобы прокрутить еще 40 пикселей.Я полагаю, что вы можете получить положение элемента на своей странице по его свойству offSetTop.

HTH.

Редактировать: Похоже, в вашем примере у вас уже есть смещение, которым я являюсьпрезумпция - это смещение элемента, к которому вы пытаетесь прокрутиться, поэтому ваш код будет выглядеть так:

function setOffset(){   
scrollTo(0,offset + 40); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...