【发布时间】:2016-05-08 02:19:34
【问题描述】:
我已经组合了一个sticky navbar,它出现在相对位置 10 像素之后,然后在滚动超过 offset().top 时变为固定。
这在小提琴上可以按需要工作,但是在 localhost(使用完全相同的代码)上,导航栏一出现就固定了(它应该相对定位到偏移点,如小提琴所示)。
希望了解它为何在 localhost 上表现不同?
另外,我添加了 jquery (<script type="text/javascript" src="//code.jquery.com/jquery-1.11.3.min.js"></script>) 并且没有控制台错误。
这是我从 localhost 运行的 javascript:
<script type="text/javascript">
document.getElementById('navig').style.visibility = 'hidden';
var fixed = false;
var topTrigger = $('#navig').offset().top;
$(window).scroll(function () {
if ($(this).scrollTop() > 10) {
document.getElementById('arr_downpoint').style.visibility = 'hidden';
document.getElementById('navig').style.visibility = 'visible';
}
else {
document.getElementById('arr_downpoint').style.visibility = 'visible';
document.getElementById('navig').style.visibility = 'hidden';
}
});
$(document).scroll(function() {
if( $(this).scrollTop() >= topTrigger ) {
if( !fixed ) {
fixed = true;
$('#navig').css({'position':'fixed', 'top':'0'});
}
} else {
if( fixed ) {
fixed = false;
$('#navig').css({'position':'relative'});
}
}
});
</script>
【问题讨论】:
-
它不起作用是什么意思?您检查控制台是否有错误?
-
在 jsFiddle 中,js 代码被包裹在窗口 onload 处理程序中。也将您的 sn-p 设置在其中。也就是说,即使在 jsFiddle 中,代码也确实有 bug……
-
您在 CSS 中的 HTML 元素 nav 上有一个绝对位置,这可能是冲突,请将其放在类 .navclass 或 id 上。
标签: javascript jquery localhost navbar sticky