Использование #anchors для перемещения полосы прокрутки с дополнительным позиционированием - PullRequest
1 голос
/ 12 сентября 2011

Можно ли изменить положение полосы прокрутки относительно нового хеш-тега? В настоящее время страница прокручивается до вершины элемента, на который нацелено использование #target, что является нормальным поведением. Есть ли способ переместить его, чтобы страница прокручивалась, например, на 100px дальше вниз по странице, чем тег привязки (добавляя дополнительные 100px перед тегом привязки)?

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

Спасибо

1 Ответ

2 голосов
/ 12 сентября 2011

Вы можете объединить ответ на этот вопрос: On - window.location.hash - Изменить?

С некоторой дополнительной логикой:

$(function(){
  var win = $(window); //cache your jq objects!
  function fixScrollTop(){
    win.scrollTop(win.scrollTop() + 100);
  }
  if(window.location.hash !== ""){
    fixScrollTop();
  }
  win.bind('hashchange', fixScrollTop);
});

О, если у вас есть контроль над #anchor в URL, вы можете (возможно, в зависимости от совместимости браузера, в который вы стреляете) установить для него идентификатор любого элемента с идентификатором, чтобы браузер прокручивал до это.

...