javascript - 删除窗口调整大小/媒体查询的滚动功能

标签 javascript jquery css

我有一个导航菜单设置为 display:none,它在滚动时出现并在回到顶部后消失。

有没有办法在我到达某个断点(例如最大宽度:786px)并显示菜单时禁用滚动功能?

Javascript

$(window).on("scroll", function() {

        if($(window).scrollTop()) {
              $('nav').addClass('show');
        }

        else {
              $('nav').removeClass('show');
        } 
  })

CSS

.show {

   display: block

      }

最佳答案

您可以使用 javascript 或 CSS 解决此问题,但我个人会选择 javascript。

首先,对于 javascript 解决方案,您需要的函数是:

window.innerWidth

它将返回不包括滚动条的整个窗口宽度。了解更多信息 here .

因此,正如 Temani Afif 所建议的那样,您可以在滚动函数中编写一个测试来检查所需的窗口宽度,如下所示:

$(window).on("scroll", function() {
    if (window.innerWidth <= 786) return;

    // Your other code here
})

对于纯 CSS 解决方案,您可以使用媒体查询覆盖“show”类的效果:

.show {
   display: block
}
@media screen and (max-width: 786px) {
    nav {
       display: block !important
    }
}

关于媒体查询的更多信息 here

关于javascript - 删除窗口调整大小/媒体查询的滚动功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50634485/

相关文章:

javascript - 如何告诉 JavaScript 在加载元素后执行函数?

javascript - 在 LocalStorage 中存储信用卡/银行账户信息有哪些风险?

javascript - CoreUI 一次只有一个下拉菜单

css - 折叠时导航栏不显示下拉菜单 - Bootstrap 3

html - Css -webkit-backface-visibility 在旋转的 div 上显示白点

javascript - 如何使 @connect 装饰器与 redux-saga 一起工作?

javascript - 如何确保从 JavaScript 中的原型(prototype)继承的每个对象的唯一 ID?

html - 影响子元素的不透明度 css

javascript - 将图像移动到预定义的 x,y 位置

javascript - 如何在不影响 this 的情况下将参数绑定(bind)到 jquery 回调