我已经就我正在处理的这个项目发布了一些问题,这是我最新的问题!
我在页面 A 上设置了一个单击事件,以将锚标记的 ID 传递到页面 B,因此我可以将其用作 scrollTop 动画的标记。我还设置了 iScroll 以允许在页面上滚动而不影响底部的固定导航。
iScroll 在页面 A 上工作正常,scrollTop 在页面 B 上工作正常。当我尝试将 iScroll 添加到页面 B 时,它会干扰 scrollTop 并导致它停止工作。我已经尝试过调试,它似乎是包装器 div 特别是导致问题的原因,这个或事实上它绝对定位。我尝试了几种不同的方法来修复它,但我似乎只是在绕圈子。有没有人能够看看他们是否能发现错误,因为它让我发疯?
代码如下!
<div id="wrapper">
<div id="scroller">
Content
</div>
</div>
<div id="footer">
Content
</div>
#footer {
position: fixed;
z-index: 2;
bottom: 0;
left: 0;
width: 100%;
padding: 0;
height: 65px;
}
#wrapper {
position: absolute;
z-index: 1;
top: 0;
bottom: 90px;
left: 0;
width: 100%;
overflow: auto;
color: #696868;
}
#scroller {
position:absolute;
paddding:0;
margin: 0 20px;
}
// Store div ID in local Storage
var storage = window.localStorage;
$("a.scroll_link").click(function(event) {
event.preventDefault();
var value = $(this).attr("id");
storage.setItem("key",value);
window.location=$(this).attr("href");
});
$(document).ready(function() {
//Retrieve ID from local storage
var value = window.localStorage.getItem("key");
console.info(value);
//If null then re-define
if (value != "" && value != "undefined" && value != null) {
var storage = window.localStorage;
storage.setItem("key",value);
var scroll_type = "";
if ($.browser.webkit) {
scroll_type = "body";
} else {
scroll_type = "html";
}
//Scroll to position based on ID
$(scroll_type)
.stop()
.animate({
//get top-position of target-element and set it as scroll target
scrollTop: ($("#" + value).offset().top - 25)
//scrolldelay: 1.5 seconds
}, {
duration: 1500,
complete: function () {
storage.clear(); //Clear item from local storage
},
});
}
});