【发布时间】:2019-03-31 11:51:22
【问题描述】:
我试图在向下滚动时偏移公告栏,考虑到公告栏的高度在较小的设备上更为重要。
这是我想要实现的示例:https://8kflexwarm.com/
所以我最终得到了这段代码,它正在工作,但我觉得它没有优化,不是干净的代码。我认为必须有一种方法可以抵消$('.announcement-bar'),而不是手动使用窗口大小。
另外,当我刷新屏幕并且我不在页面顶部时,为什么这段代码不起作用?
有没有办法在不使用库的情况下改进此代码?
if($(window).width() >= 686){
var a = $(".site-header").offset().top;
function scrollListener(){
if($(document).scrollTop() > a)
{
$('.site-header').css({"margin-top":"-40px"});
$('.site-header').css({"transition":"0.4s"});
} else {
$('.site-header').css({"margin-top":"0px"});
$('.site-header').css({"transition":"0.4s"});
}
};
$(document).scroll(scrollListener);
scrollListener();
} else if($(window).width() >= 370) {
var a = $(".site-header").offset().top;
function scrollListener(){
if($(document).scrollTop() > a)
{
$('.site-header').css({"margin-top":"-65px"});
$('.site-header').css({"transition":"0.4s"});
} else {
$('.site-header').css({"margin-top":"0px"});
$('.site-header').css({"transition":"0.4s"});
}
};
$(document).scroll(scrollListener);
scrollListener();
} else {
var a = $(".site-header").offset().top;
function scrollListener(){
if($(document).scrollTop() > a)
{
$('.site-header').css({"margin-top":"-90px"});
$('.site-header').css({"transition":"0.4s"});
} else {
$('.site-header').css({"margin-top":"0px"});
$('.site-header').css({"transition":"0.4s"});
}
};
$(document).scroll(scrollListener);
scrollListener();
};
【问题讨论】:
标签: javascript css navbar offset