Нежелательный переход на страницу при использовании хеш-URL - PullRequest
1 голос
/ 20 января 2012

Я проверил другие вопросы о переходе на страницу здесь, на SO, и я не нашел ничего подходящего, так что мы идем ...

Я работаю над созданием веб-сайта, который использует переходы CSS3 и несколько хеш-ссылок, в отличие от использования jQuery для загрузки / перехода различных страниц / элементов (просто для удовольствия / чтобы доказать, что I / CSS может). У меня проблема в том, что когда я нажимаю на одну из моих ссылок, полоса прокрутки автоматически падает вниз примерно на 100 пикселей без видимой причины.

Я не помню, чтобы он делал это все время, поэтому, возможно, что-то в моем CSS пошло странно. Я также добавил несколько тегов <a name> в верхней части страницы, чтобы попытаться восстановить их, но это тоже не работает. Я также попытался добавить onclick="window.scrollTo(0,0);" в ссылки, и это тоже не работает: (

Любые идеи / помощь были бы замечательными, так как это действительно раздражает / плохое удобство в использовании, чтобы прокручивать каждый раз, когда вы переходите на страницу. Вы можете просмотреть страницу здесь .

Информация о системе:

Браузер (ы): Chrome 16.0.912.75, FireFox 9.0.1, Opera 11.6

ОС: Windows 7

Ответы [ 2 ]

2 голосов
/ 20 января 2012

Я не знаком с переходами CSS3, поэтому не до конца понимаю, что вы делаете. Тем не менее:

  1. Я предполагаю, что такое поведение, которое вы считаете нежелательным, связано с собственным поведением браузера прокрутки элемента в представлении на основе идентификатора фрагмента в URL. Я не уверен, что переопределение этого с <a name> элементами сработает, но в любом случае вы неправильно установили значения name, поставив перед ними префикс хешем. Например, должно быть <a name="about"></a>, а не <a name="#about"></a>.

  2. По крайней мере, в целях отладки, я бы попробовал добавить click слушатель событий и вызвать в нем preventDefault(), чтобы посмотреть, остановит ли он прокрутку.

  3. Было бы полезно указать, в каком браузере (включая ОС и версию) возникла проблема.

0 голосов
/ 20 января 2012

Обратите внимание, что это не просто прыжок вниз в случайное место, это прыжок вниз к элементу, который имеет идентификатор хэша.(Попробуйте добавить #footer в конец вашего URL). Я не думаю, что вы можете обойти это без использования preventDefault в JavaScript.

...