javascript - 页面重新加载后重置导航栏状态

标签 javascript jquery css

关于刷新页面的非常基本的问题(我认为)。

所以我有一个固定的导航栏,它可以调整大小和更改颜色,并在您向下滚动时执行各种奇特的操作。问题是,当您刷新页面时,即使您仍在向下滚动,导航栏也会“刷新”,它看起来就像您位于页面顶部时一样。

使用 jQuery 2.x 这是我得到的:

$(window).scroll(function() {
   if ($(document).scrollTop() > 50) {
       $('nav').addClass('shrink');
       $('#enquire-btn').addClass('btn-shrink');
       $('#logo').css("max-height", "70px")
       $('#logo-link').css("padding-top", "7px")
   } else {
       $('nav').removeClass('shrink');
       $('#enquire-btn').removeClass('btn-shrink');
       $('#logo').css("max-height", "100px")
       $('#logo-link').css("padding-top", "15px")
   }
});

最佳答案

我认为问题在于此功能仅在滚动时触发。当您重新加载页面时,该函数从未被调用过。您可以尝试将其更改为这样的内容:

$(window).scroll(ScrollChange);
function ScrollChange(){
if ($(document).scrollTop() > 50) {
       $('nav').addClass('shrink');
       $('#enquire-btn').addClass('btn-shrink');
       $('#logo').css("max-height", "70px")
       $('#logo-link').css("padding-top", "7px")
   } else {
       $('nav').removeClass('shrink');
       $('#enquire-btn').removeClass('btn-shrink');
       $('#logo').css("max-height", "100px")
       $('#logo-link').css("padding-top", "15px")
   }
}

$( document ).ready(function() {
    ScrollChange();
}

这样您的函数也会在页面加载时触发。

关于javascript - 页面重新加载后重置导航栏状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43921472/

相关文章:

javascript - request(...).then 在发出 POST 请求时不是函数错误

javascript - 将 ng-model 数组绑定(bind)到固定数量的文本框

javascript - 在 AngularJS 中第一次使用服务 promise 的旧响应的 Controller 方法

javascript - 为什么 JavaScript 中的字符串没有添加到数组中?

javascript - 我怎样才能专注于新元素...通过按 Tabbutton

javascript - Discord.JS V13 client.on messagecreate 未触发

javascript - 插入 DOM 时图像闪烁

javascript - querySelectorAll 查找匹配的数据属性

css - 删除顶部菜单 Prestashop 中的双边框

html - 通过内部框架计算外部元素的悬停状态