gpt4 book ai didi

javascript - 滚动时固定导航栏。使用javascript

转载 作者:行者123 更新时间:2023-11-28 03:53:42 24 4
gpt4 key购买 nike

我不会编写 javascript,所以我很难理解如何将我的导航栏开发成这样:http://www.bootply.com/kD5wiG5udv

我显然已经使用了常识并交换了我的选择器,但它仍然无法正常工作。有人可以告诉我接下来要采取什么步骤吗?

请使用上述网站浏览我的代码,因为我不会将 Bootstrap 文件添加到这篇文章中。它们太大了。

本杰明

<nav class="navbar navbar-default" role="navigation" id="nav">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle Navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">
<img alt="" src="">
</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Home</a></li>
<li><a href="#">Projects</li>
<li><a href="#">Services</li>
<li><a href="#">About</li>
<li><a href="#">Contact</li>
</ul>
</div>
</div>
</nav>

CSS:

.navbar-default

{

background-color: #fbfbfb;
}

.navbar-nav {
float:none;
margin:0 auto;
display: block;
text-align: center;
}

.navbar-nav > li {
display: inline-block;
float:none;
}

.scroll-top {
position:fixed;
bottom:0;
right:6%;
z-index:100;
background: #f2f3f2;
font-size:24px;
border-top-left-radius:3px;
border-top-right-radius:3px;
}
.scroll-top a:link,.scroll-top a:visited {
color:#222;
}

.navbar-nav {

margin-left: 50px;
margin-top: -5px;
}

Javascript:

/* affix the navbar after scroll below header */
$('#nav').affix({
offset: {
top: $('header').height()-$('#nav').height()
}
});

/* highlight the top nav as scrolling occurs */
$('body').scrollspy({ target: '#nav' })

/* smooth scrolling for scroll to top */
$('.scroll-top').click(function(){
$('body,html').animate({scrollTop:0},1000);
})

/* smooth scrolling for nav sections */
$('#nav .navbar-nav li>a').click(function(){
var link = $(this).attr('href');
var posi = $(link).offset().top;
$('body,html').animate({scrollTop:posi},700);
});

最佳答案

在我看来,如果您的网站不兼容旧版本的浏览器,那么尽可能多地使用 CSS 会更好。我不确定 Bootstrap 是否有自己的方式来实现类似的东西,但在这里您可以了解如何自己执行此操作。jQuery 在这里的主要作用只是在滚动事件上添加一个类,这将触发不透明动画。这应该是解决问题的更清晰的解决方案,因为它会平稳且快速。这是工作 fiddle :https://jsfiddle.net/q5jo781c/1/

这部分在滚动时切换类:

$(document).ready(function(){
$(document).scroll(function(){
var st = $(this).scrollTop();
if(st > 200) {
$("navbar").addClass('fixed');
} else {
$("navbar").removeClass('fixed');
}
});
});

还有 CSS:

navbar {
width: 100%;
display: block;
height: 50px;
background-color: black;
}

navbar.fixed {
position: fixed;
top: 0;
left: 0;
background-color: white;
animation-name: example;
animation-duration: 1s;
}

@keyframes example {
from {opacity: 0;}
to {opacity: 1;}
}

您可以在 fiddle 中找到更多 CSS。希望对您有所帮助。

关于javascript - 滚动时固定导航栏。使用javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43596175/

24 4 0