我正在尝试在用户向下滚动后背景出现的地方进行导航。然而,当用户在页面中间并刷新时,背景消失,他们需要再次滚动才能重新出现。我正在尝试做到这一点,以便无论何时用户滚动过标题,导航背景颜色都将在那里。
如有任何帮助,我们将不胜感激!
代码:
J查询:
$(document).ready(function(){
var targetOffset = $('header').offset().top + $('header').height();
var $w = $(window).scroll(function(){
if ( $w.scrollTop() > targetOffset ) {
$("#nav").css('background-color', 'rgba(35,46,63,1)');
} else {
$('#nav').css('background-color', 'rgba(35,46,63,0)');
}
});
});
CSS:
nav {
background-color: rgba(35,46,63,0);
transition: background-color 200ms linear;
position: fixed;
left: 0;
right: 0;
padding: 25px;
z-index: 1;
box-shadow: 0px 0px 0px rgba(0,0,0,0);
}
nav > .wrapper {
overflow: hidden;
}
nav > .wrapper > li.nav-logo {
list-style: none;
font-weight: 600;
padding: 0px;
border-top: 1px solid rgba(0,0,0,0);
}
nav > .wrapper > li.nav-logo > a {
color: #DDDDDD;
text-decoration: none;
}
nav > .wrapper > li.nav-logo > a > img.left {
width: 5%;
display: inline-block;
float: left;
}
nav > .wrapper > ul.right {
list-style: none;
float: right;
}
nav > .wrapper > ul > li {
display: inline-block;
list-style: none;
font-weight: 400;
font-size: 0.9em;
padding: 15px;
border-bottom: 1px solid rgba(0,0,0,0);
border-radius: 6px;
vertical-align: middle;
transition: all 0.3s ease;
}
nav > .wrapper > ul > li > a {
color: #FFFFFF;
text-decoration: none;
transition: all .3s ease;
}
nav > .wrapper > ul > li > a:hover {
color: white;
text-decoration: none;
}
HTML:
<nav id="nav">
<div class="wrapper">
<li class="nav-logo"><a href="#"><img class="left" src="assets/images/ugn-logos/single-ugn-logo.png" alt="ugn-logo"></a></li>
<span class="nav-btn"><i class="icon-menu"></i></span>
<ul class="right">
<li><a href="index.html">Home</a></li>
<li><a href="shared-hosting.html">Shared Hosting</a></li>
<li><a href="vps.html">VPS</a></li>
<li><a href="minecraft.html">Minecraft</a></li>
<li><a href="#">Contact</a></li>
</ul>
</div>
</nav>
最佳答案
这是因为 $(window).scroll()
只会在滚动发生后激活。 $(document).ready()
需要执行相同的脚本。因此,您可以创建一个函数并在调整窗口大小和准备好文档时调用它。
$(document).ready(function(){
function changeBG() {
var targetOffset = $('header').offset().top + $('header').height();
if ( $w.scrollTop() > targetOffset ) {
$("#nav").css('background-color', 'rgba(35,46,63,1)');
} else {
$('#nav').css('background-color', 'rgba(35,46,63,0)');
}
}
changeBG();
$(window).scroll(changeBG);
});
关于javascript - 根据用户在页面上的位置更改 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44377296/