首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript scroll addClass

Javascript scroll addClass
EN

Stack Overflow用户
提问于 2018-02-15 21:21:49
回答 2查看 80关注 0票数 0

我希望我的导航栏在页面的顶部和底部是透明的,但我希望它在中间不是透明的。当我的网页全屏显示时,这是可行的:

代码语言:javascript
复制
$(window).on("scroll", function () {
    if ($(window).scrollTop() > 720 && $(window).scrollTop() < 1450 ) {
        $(".nav").addClass("active");
    } else {
        $(".nav").removeClass("active");
    }
})

但当它被调整大小时,这将不再起作用,因为大小发生了变化。有没有一种方法可以用%代替普通数字,这样它就会有响应?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-15 21:36:35

这是因为您对高度值进行了硬编码。检查整个站点高度,将其一分为三,并将此变量合并到if语句中。每次你调整浏览器窗口的大小,它都会重新计算你的新位置。

代码语言:javascript
复制
window.addEventListener('resize', function() {
  //one third and two third of website
  oneThird = window.scrollHeight / 3;
  twoThird = onethird * 2;

  if ( $(window).scrollTop() > oneThird && $(window).scrollTop() < twoThird ) {
      $(".nav").addClass("active");
  } else {
      $(".nav").removeClass("active");
  }
}
票数 0
EN

Stack Overflow用户

发布于 2018-02-15 21:31:46

你也可以在JS中使用媒体查询,这样你就可以对你想要的窗口大小做某些事情,这可能会对https://www.w3schools.com/howto/howto_js_media_queries.asp有所帮助

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48808316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档