我已经设法获得了我想要的导航外观,我的问题是当我不希望导航在第一个状态时向上滑动当你刷新时你可以看到第一个导航幻灯片我想要的很快它与网站一起然后带有背景幻灯片的导航然后在滚动时向上滑动但是没有背景的导航我根本不想滑动。
(function($) {
var header = $('.siteHeader');
$(window).scroll(function() {
if ($(this).scrollTop() > 300) {
header.addClass('fixed active').off('transitionend');
} else if (header.hasClass('active')) {
header.removeClass('active').one('transitionend', function() {
header.removeClass('fixed');
header.addClass('active');
});
}
}).scroll();
})(jQuery);
$(window).resize(function() {
$('.siteHeader').addClass('active');
$('.siteHeader').removeClass('fixed');
});
$(document).ready(function(){
$(this).scrollTop(0);
$('.siteHeader').addClass('active');
});
.headerNav {
height: auto;
float: right;
margin: 0px;
}
.headerNav ul li {
display: inline-block;
margin-left: 40px;
}
.siteHeader {
height: 86px;
position: absolute;
width: 100%;
z-index: 11;
background-color: red;
-webkit-transition: -webkit-transform .3s;
transition: transform .3s;
-moz-transform: translateY(-86px);
-ms-transform: translateY(-86px);
-webkit-transform: translateY(-86px);
transform: translateY(-86px);
}
.siteHeader.fixed {
width: 100%;
height: 66px;
position: fixed;
top: 0px;
background-color: #000;
-moz-transform: translateY(-130px);
-ms-transform: translateY(-130px);
-webkit-transform: translateY(-130px);
transform: translateY(-130px);
transition: transform .3s;
}
.siteHeader.active {
-moz-transform: translateY(0px);
-ms-transform: translateY(0px);
-webkit-transform: translateY(0px);
transform: translateY(0px);
transition: transform .3s;
}
.siteHeader.fixed.active {
-moz-transform: translateY(0px);
-ms-transform: translateY(0px);
-webkit-transform: translateY(0px);
transform: translateY(0px);
transition: transform .3s;
}
.main{
background-color: grey;
height: 1500px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="siteHeader">
<nav class="headerNav">
<ul>
<li><a href="">Link</a></li>
<li><a href="">Link</a></li>
<li><a href="">Link</a></li>
<li><a href="">Link</a></li>
</ul>
</nav>
</div>
<div class="main">Content</div>
答案 0 :(得分:1)
我认为这可能是一个开始......
查看示例网站的源代码,有2个元素,都包含“标题”。我在this jsfiddle中复制了这个想法。
(function($) {
var header = $('.siteHeader');
$(window).scroll(function() {
if ($("body").scrollTop() > 86) {
header.addClass('fixed active').off('transitionend');
} else if (header.hasClass('active')) {
header.removeClass('active').one('transitionend', function() {
header.removeClass('fixed');
header.addClass('active');
});
}
}).scroll();
})(jQuery);
$(window).resize(function() {
$('.siteHeader').addClass('active');
$('.siteHeader').removeClass('fixed');
});
$(document).ready(function() {
$(this).scrollTop(0);
$('.siteHeader').addClass('active');
});
body {
padding: 0;
margin: 0;
}
.headerNav {
height: auto;
float: right;
margin: 0px;
}
.headerNav ul li {
display: inline-block;
margin-left: 40px;
}
.siteHeader,
.siteHeaderNoFloat {
height: 86px;
top: 0;
width: 100%;
background-color: red;
}
.siteHeader {
position: absolute;
z-index: 11;
-moz-transform: translateY(-86px);
-ms-transform: translateY(-86px);
-webkit-transform: translateY(-86px);
transform: translateY(-86px);
}
.siteHeader.fixed {
-webkit-transition: -webkit-transform .3s;
transition: transform .3s;
width: 100%;
height: 66px;
position: fixed;
top: 0px;
background-color: #000;
-moz-transform: translateY(-130px);
-ms-transform: translateY(-130px);
-webkit-transform: translateY(-130px);
transform: translateY(-130px);
transition: transform .3s;
}
/*.siteHeader.active {
-moz-transform: translateY(0px);
-ms-transform: translateY(0px);
-webkit-transform: translateY(0px);
transform: translateY(0px);
transition: transform .3s;
}*/
.siteHeader.fixed.active {
-moz-transform: translateY(0px);
-ms-transform: translateY(0px);
-webkit-transform: translateY(0px);
transform: translateY(0px);
transition: transform .3s;
}
.main {
background-color: grey;
height: 1500px;
padding-top: 86px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="siteHeaderNoFloat">
<nav class="headerNav">
<ul>
<li><a href="">Link</a></li>
<li><a href="">Link</a></li>
<li><a href="">Link</a></li>
<li><a href="">Link</a></li>
</ul>
</nav>
</div>
<div class="siteHeader">
<nav class="headerNav">
<ul>
<li><a href="">Link</a></li>
<li><a href="">Link</a></li>
<li><a href="">Link</a></li>
<li><a href="">Link</a></li>
</ul>
</nav>
</div>
<div class="main">
Content
</div>
当身体的.scrollTop达到86px时,标题的高度,黑色固定标题出现。
希望这会有所帮助。祝你好运!