滚动后导航栏显示过渡效果
Navbar show after scroll with transition effect
Web 上是具有相对位置、显示块的基本水平导航面板。滚动超过 150 像素后,我有 javascript 代码将其位置更改为固定。所以面板出现给用户...现在问题:
如何制作(淡入或下滑)过渡效果?
这是fiddle:fiddle
Css:
#navigation-panel {
transition: all 1s linear;
}
Js:
$(window).scroll(function () {
console.log($(window).scrollTop());
if($(window).scrollTop() > 150) {
$('#navigation-panel').css('opacity', 1);
$('#navigation-panel').css('position', 'fixed');
$('#navigation-panel').css('opacity', 0);
} else {
$('#navigation-panel').css('position', 'relative');
}
});
我试图在 javascript 中设置(在 css 中是转换:全 1;):
- 不透明度 0;
- 位置:固定;
- 不透明度 1
或
之类的替代方案
- margin-top -50px(面板高度为 50px);
- 位置:固定;
- 保证金:0;
但是转换不起作用...
有什么建议吗?
这应该可以完成工作:
$(window).scroll(function () {
if($(window).scrollTop() > 150) {
$('#navigation-panel').css('position', 'fixed');
$('#navigation-panel').css('top', 0);
} else {
$('#navigation-panel').css('position', '');
$('#navigation-panel').css('top', '-100%');
}
});
.container {
height: 1000px;
}
#navigation-panel {
transition: all 0.5s;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="navigation-panel">
<ul id="main-menu">
<li>
<a href="#about-us" class="smooth-scroll">About us</a>
</li>
<li>
<a href="#services" class="smooth-scroll">Services</a>
</li>
<li>
<a href="#contact" class="smooth-scroll">Contact</a>
</li>
</ul>
</div>
<div class="container"></div>
Web 上是具有相对位置、显示块的基本水平导航面板。滚动超过 150 像素后,我有 javascript 代码将其位置更改为固定。所以面板出现给用户...现在问题:
如何制作(淡入或下滑)过渡效果?
这是fiddle:fiddle
Css:
#navigation-panel {
transition: all 1s linear;
}
Js:
$(window).scroll(function () {
console.log($(window).scrollTop());
if($(window).scrollTop() > 150) {
$('#navigation-panel').css('opacity', 1);
$('#navigation-panel').css('position', 'fixed');
$('#navigation-panel').css('opacity', 0);
} else {
$('#navigation-panel').css('position', 'relative');
}
});
我试图在 javascript 中设置(在 css 中是转换:全 1;):
- 不透明度 0;
- 位置:固定;
- 不透明度 1
或
之类的替代方案- margin-top -50px(面板高度为 50px);
- 位置:固定;
- 保证金:0;
但是转换不起作用...
有什么建议吗?
这应该可以完成工作:
$(window).scroll(function () {
if($(window).scrollTop() > 150) {
$('#navigation-panel').css('position', 'fixed');
$('#navigation-panel').css('top', 0);
} else {
$('#navigation-panel').css('position', '');
$('#navigation-panel').css('top', '-100%');
}
});
.container {
height: 1000px;
}
#navigation-panel {
transition: all 0.5s;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="navigation-panel">
<ul id="main-menu">
<li>
<a href="#about-us" class="smooth-scroll">About us</a>
</li>
<li>
<a href="#services" class="smooth-scroll">Services</a>
</li>
<li>
<a href="#contact" class="smooth-scroll">Contact</a>
</li>
</ul>
</div>
<div class="container"></div>