javascript - 粘性菜单 - 防止在页面刷新时加载

标签 javascript jquery html css

我在页面的下方使用了一个粘性菜单,这样当用户滚动到它时,它会粘在顶部。当用户向上滚动时,当您到达页面上粘性菜单所在的位置时,它将停止粘在顶部。

一切正常。唯一的问题是,如果有人在粘性菜单位于顶部时刷新页面,当您在页面上传递它时它不会取消粘性(无论您在哪里,它都会保持粘性)。

我可以做些什么来删除它吗?

var menu = document.querySelector('.menu-t')
        var menuPosition = menu.getBoundingClientRect().top;
        window.addEventListener('scroll', function () {
            if (window.pageYOffset >= menuPosition) {
                menu.style.position = 'fixed';
                menu.style.top = '0px';
            } else {
                menu.style.position = 'static';
                menu.style.top = '';
            }
        });
.page-section {
  border-bottom: 1px solid #ddd;
  overflow: hidden;
}

.page-section.page-section-center {
  align-content: center;
  text-align: center;
}


.menu-t {
  margin: 0;
  padding: 0;
  width: 100%;
  background-color: #FFF;
  z-index: 1000;
  border-bottom: 1px #eee dotted;
}
.menu-t li {
  display: inline-block;
  text-align: center;
  padding: 20px;
  text-transform: uppercase;
  font-size: 14px;
}
.menu-t a {
  display: block;
  padding: 10px 0;
  color: #32404E !important;
  -webkit-transition: color ease 0.3s;
  -o-transition: color ease 0.3s;
  transition: color ease 0.3s;
}
.menu-t a:hover {
  color: #2db2e9 !important;
}
<section class="page-section">
  <br/>
  <br/>
    <br/>
  <br/>
  </section>
<section class="page-section page-section-center hidden-xs hidden-sm">
    <ul class="menu-t">
      <li>ITEM</li>
        <li>
            <a href="#" class="text-thick">What Is</a>
        </li>
        <li>
        <a href="#" class="text-thick">How</a>
        </li>
        <li>
            <a href="#" class="text-thick">You're In Good Company</a>
        </li>
      <li>ITEM</li>
    </ul>
</section>
  <br/>
  <br/>
  <br/>
  <br/>
  <br/>
  <br/>
  <br/>
  <br/>
  <br/>
  <br/>
  <br/>
  <br/>
  <br/>
  <br/>
  <br/>
  <br/>
  <br/>
  <br/>
  <br/>
  <br/>
  <br/>
  <br/>
  <br/>
  <br/>
  <br/>
  <br/>

最佳答案

DOMContentLoaded eventListener 添加到您的 javascript。

document.addEventListener("DOMContentLoaded", function(event) {
  var menu = document.querySelector('.menu-t')
  var menuPosition = menu.getBoundingClientRect().top;
  window.addEventListener('scroll', function () {
      if (window.pageYOffset >= menuPosition) {
          menu.style.position = 'fixed';
          menu.style.top = '0px';
      }
      else {
          menu.style.position = 'static';
           menu.style.top = '';
        }
    });
});

关于javascript - 粘性菜单 - 防止在页面刷新时加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41615518/

相关文章:

javascript - 在我在Iphone中选择日期之前,html输入类型日期调用javascript函数

javascript - 使书签执行它下载的功能

javascript - 从 Google 电子表格导入数据库

jquery - 表格行可以通过 jquery 的 bgcolor 或其值作为目标吗

javascript - 如何使用开发工具样式编辑器实时编辑动态 javascript 元素的 CSS?

html - 布置此文本的最佳方式?

javascript - JS中Delete操作符的理解

c# - 如何将屏幕截图发送到 Controller ?

javascript - A/libc : Fatal signal 11 (SIGSEGV), 代码 1 (SEGV_MAPERR), tid 8890 (RenderThread) 中的故障地址 0x20, pid 8833

javascript - 为什么从 MySQL 和 jQuery .click 函数检索的数据表行不可单击?