В то время как принятый ответ работает хорошо, я обнаружил, что иногда, особенно на страницах, содержащих большие изображения, полоса прокрутки будет дико прыгать, используя
window.scrollTo(0, 0);
Что может сильно отвлекать пользователя.
Решение, на котором я остановился в конце концов, на самом деле довольно простое, и оно заключается в использовании идентификатора, отличного от идентификатора, используемого в location.hash
Например:
Вот ссылка на другую страницу
<a href="/page/with/tabs#tab2">Some info found in tab2 on tabs page</a>
Так что, конечно, если на странице вкладок есть элемент с идентификатором tab2
, окно перейдет к нему при загрузке.
Таким образом, вы можете добавить что-то к идентификатору, чтобы предотвратить это:
<div id="tab2-noScroll">tab2 content</div>
И тогда вы можете добавить "-noScroll"
к location.hash
в javascript:
<script type="text/javascript">
$(function() {
var tabContent = $(".tab_content");
var tabs = $("#menu li");
var hash = window.location.hash;
tabContent.not(hash + '-noScroll').hide();
if(hash=="") { //^ here
$('#tab1-noScroll').fadeIn();
}
tabs.find('[href=' + hash + ']').parent().addClass('active');
tabs.click(function() {
$(this).addClass('active').siblings().removeClass('active');
tabContent.hide();
var activeTab = $(this).find("a").attr("href") + '-noScroll';
//^ and here
$(activeTab).fadeIn();
return false;
});
});
</script>