Итак, этот ответ очень специфичен для вашей проблемы.
Причина, по которой ни одно из других решений не сработало, заключается в том, что ваши элементы div
, соответствующие привязке, скрыты при загрузке страницы.
Чтобы убедиться в этом, щелкните одну из ссылок на главной странице и убедитесь, что она не работает. Затем измените хэш с #whatever
на #bgaboutbody
, и вы увидите, что он работает правильно.
Таким образом, использование чего-то подобного заставит это работать на вас. По сути, если есть хэш, он будет анимироваться до нужного места. Поместите это в блок сценария в самом низу вашей страницы (прямо над тегом </body>
)
window.setTimeout(function(){
if(window.location.hash){
var $target = $(window.location.hash).closest("#bgaboutbody");
if($target.length)
$('html, body').animate({scrollTop: $target.offset().top}, 1000);
}
}, 100);
Научитесь использовать резервные варианты:
Всегда лучше убедиться, что ваш контент будет загружаться без JavaScript на таком сайте продаж. (В веб-приложении я чувствую, что это другое обсуждение). Я бы рекомендовал использовать решение, которое я дал вам, на этот вопрос где вы добавляете класс js
к элементу html
в <head>
страницы. Затем скопируйте свой CSS следующим образом:
.js #contact, .js #about, etc { display:none }
Таким образом, он будет скрыт только при наличии JS. Кроме того, поскольку это решение также использует JavaScript, важно, чтобы они были видны, если JS отключен, поэтому оно все еще работает.
person
Doug Neiner
schedule
06.12.2009