Краткая предыстория:
У меня все работало отлично, но через некоторое время я заметил, что оно перестало работать должным образом. Возможность вернуться на «страницу» чрезвычайно важна для меня, поэтому я приступил к отмене всех недавних изменений, которые я сделал. Это не сработало, поэтому я решил воссоздать фреймворк (надеясь собрать содержимое, чтобы найти проблемное место), но проблема осталась. Я перегнал код до основ ниже.
Раньше я мог нажать кнопку «Назад», и меня сразу же переводили на предыдущую панель. СЕЙЧАС ничего не происходит, за исключением того, что «#page_name» изменяется, а текущая панель смещается на 1 пиксель. Если я щелкнул несколько ссылок (тем самым сохранив больше «следа» истории), то, как только я нажму кнопку «Назад» во второй раз, я, наконец, вернусь к состоянию, но не к правильному.
Вот скрипт: http://jsfiddle.net/gz9nW/
JQ
$(document).ready(function(){
$('.main-nav').on('click',function (e) {
e.preventDefault();
var target = $(this).attr("href");
$target = $(target);
$('html, body').stop().animate({
'scrollLeft': $target.offset().left,
'scrollTop': $target.offset().top
}, 900, 'swing', function () {
window.location.hash = target;
});
});
});
CSS
html {
font: 100% 'PT Sans', sans-serif;
height:100%;
width:100%;
margin:0%;
padding:0%;
}
body {
font-size:1.25em;
width:100%;
margin:0%;
padding:0%;
overflow:hidden;
}
header {
width:100%;
position:fixed;
z-index:5000;
top:0%;
left:0%;
padding:0%;
margin:0%;
background:silver;
}
/*################################ NAV ################################*/
nav ul {
list-style:none;
}
nav ul li {
display:inline;
margin-right:5px;
}
/*################################ WRAPPER ################################*/
.wrapper {
width:1000%; /* #PAGES X 100% */
height:100%;
}
/*################################ PAGES ################################*/
.page-container {
width:10%; /* 1 / #PAGES */
display:inline-block;
vertical-align:top;
padding:0%;
margin:0%;
margin-right:-5px;
}
.page-container:nth-child(even) {
background:lightgreen;
}
.page-container:nth-child(odd) {
background:lightblue;
}
.page-contents {
padding:10% 0%;
width:61%;
margin-left:auto;
margin-right:auto;
background:grey;
}
HTML
<body>
<header>
<nav>
<ul>
<li><a class="main-nav" href="#home">Home</a></li>
<li><a class="main-nav" href="#products">Products</a></li>
<li><a class="main-nav" href="#services">Services</a></li>
<li><a class="main-nav" href="#quote">Quote</a></li>
<li><a class="main-nav" href="#about">About</a></li>
<li><a class="main-nav" href="#contact">Contact</a></li>
</ul>
</nav>
</header>
<div class="wrapper">
<div class="page-container" id="home">
<div class="page-contents">
home
</div>
</div>
<div class="page-container" id="products">
<div class="page-contents">
products
</div>
</div>
<div class="page-container" id="part-list">
<div class="page-contents">
part list catalog
</div>
</div>
<div class="page-container" id="services">
<div class="page-contents">
services
</div>
</div>
<div class="page-container" id="quote">
<div class="page-contents">
quote request
</div>
</div>
<div class="page-container" id="about">
<div class="page-contents">
about
</div>
</div>
<div class="page-container" id="contact">
<div class="page-contents">
contact page
</div>
</div>
<div class="page-container" id="inquiries">
<div class="page-contents">
solution inquiries
</div>
</div>
<div class="page-container" id="news">
<div class="page-contents">
news
</div>
</div>
<div class="page-container" id="legal">
<div class="page-contents">
legal info
</div>
</div>
</div>
</body>
Это огромный удар по этому проекту, так как эта конкретная функциональность была тем, что мне было нужно. Любая помощь будет принята с благодарностью!