【发布时间】:2014-04-09 14:49:54
【问题描述】:
所以我正在尝试制作一个导航栏,当您第一次加载页面时它会隐藏并在您向下滚动到第二部分时显示,我已经让它工作了,但是当您在主页部分上下滚动时,导航栏在本应远离视线时不断出现和消失。
现场演示:http://zimxtrial.ukbigbuy.com/
JS:
<script type="text/javascript">
jQuery(document).ready(function() {
var startY= jQuery('#home').position().top + jQuery('#home').outerHeight();
jQuery('#nav-container').html( jQuery('#nav').html());
jQuery(window).scroll(function () {
if(jQuery(this).scrollTop() > startY ){
jQuery('#nav-container').slideDown();
}else{
$('#nav-container').css({display: 'block'});
jQuery('#nav-container').slideUp();
}
});
});
</script>
CSS:
#nav-container {
position: fixed;
height: 50px;
width: 100%;
min-width: 600px;
display: none;
}
任何帮助将不胜感激,谢谢大家。
另外,这是我第一次玩 JQuery 和 JS,所以请善待。
修复后的最终版本:
<script type="text/javascript">
$(document).ready(function() {
var startY= $('#home').position().top + $('#home').outerHeight();
var navc = $('#nav-container')
navc.html( $('#nav').html());
$(window).scroll(function () {
if($(this).scrollTop() > startY ){
navc.slideDown();
}else{
navc.slideUp();
}
});
});
</script>
【问题讨论】:
-
顺便说一句,您可以使用
$作为快捷方式jQuery,即$(document).ready()。节省大量打字。 -
请将您的 jQuery('#nav-container') 保存在滚动函数之外的变量中,因为每次滚动时都会强制 jQuery 重新解析所有数据:/
-
谢谢你们,如果您查看我的原始问题,我已经添加了一个最终版本,该版本有效并且包含您的两个建议。
-
谢谢,很高兴我知道了:D
标签: javascript jquery css navigation navbar