我已经浏览了这里所有与我所面临的问题相关的东西,但仍然无法修复它。
我正在尝试做的事情:
- 当用户向上/向下滚动页面时,获取侧边栏导航浮动。
- 使侧边栏居中停止,以便可以查看和单击所有元素。
我得到了什么:
- 向下滚动时侧边栏跟随滚动(集中视图),但向上滚动时,当页面向上滚动太快时,侧边栏仅显示一半。
- 向下滚动页面时,侧边栏会将页脚推到更下方,没有尽头。
- 当页面从底部一直向上滚动时,侧边栏不会锁定回其原始位置。似乎有一点缝隙。
这是脚本(改编自慷慨的 Jordon Mears):
<script type="text/javascript">
function animate_box() {
var offset = -15; /* set this to the starting margin-top in the css */
var element = document.getElementById('animate_box');
if(element) {
var top = Number(String(element.style.marginTop).substring(0,String(element.style.marginTop).indexOf('px')));
try {
if(document.body.scrollTop > 500) {
var difference = (document.body.scrollTop + offset);
} else if(document.documentElement.scrollTop > 0) {
var difference = (document.documentElement.scrollTop + offset);
} else {
var difference = offset;
}
} catch(e) {
var difference = offset;
}
difference = difference - top;
if(difference > 200) {
element.style.marginTop = (top + Math.abs(Math.ceil(difference / 30))) + 'px';
} else if(difference < 190) {
element.style.marginTop = (top - Math.abs(Math.ceil(difference / 30))) + 'px';
}
}
}
window.setInterval(animate_box, 50);
</script>