为什么不能在JavaScript中设置导航栏的高度?

MD.ALIMUL阿拉兹

我想知道如何navbar使用HTML,CSS和JS编写粘性代码我没有使用jQuery创建了粘性导航,但是该height功能无法正常工作。有人可以建议我如何调用此height功能吗?如何height在纯JavaScript中找到

document.addEventListener("DOMContentLoaded", function() {
  'use strict';
  var c, currentScrollTop = 0;
  var navbar = document.querySelector(".nav");
  window.addEventListener('scroll', function() {
    var a = (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;
    var b = navbar.hight();
    currentScrollTop = a;
    if (c < currentScrollTop && a > b + b) {
      navbar.addClass("scrollUp");
    } else if (c > currentScrollTop && !(a <= b)) {
      navbar.removeClass("scrollUp");
    }
    c = currentScrollTop;
  });
});
<nav>
  <div class="container">
    <a href="#" id="brand">Brand</a>
    <button>
      <span></span>
      <span></span>
      <span></span>
    </button>
    <ul class="navbar-menu">
      <li>
        <a href="#">Home</a>
      </li>
      <li>
        <a href="#">About</a>
      </li>
      <li>
        <a href="#">Team</a>
      </li>
      <li>
        <a href="#">Timeline</a>
      </li>
      <li>
        <a href="#">Conact</a>
      </li>
    </ul>
  </div>
</nav>

罗伊·G

nav不是阶级。这是一个HTML标记。因此,document.querySelector(".nav")将返回一个空节点列表。

更改

document.querySelector(".nav")

var b = navbar.height();

document.querySelector("nav")

var b = navbar.clientHeight;
// or
var height = navbar.offsetHeight;

document.addEventListener("DOMContentLoaded", function() {
  'use strict';
  var c, currentScrollTop = 0;
  var navbar = document.querySelector("nav");
  window.addEventListener('scroll', function() {
    var a = (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;
    var b = navbar.clientHeight
    currentScrollTop = a;
    if (c < currentScrollTop && a > b + b) {
      navbar.addClass("scrollUp");
    } else if (c > currentScrollTop && !(a <= b)) {
      navbar.removeClass("scrollUp");
    }
    c = currentScrollTop;
  });
});
<nav>
  <div class="container">
    <a href="#" id="brand">Brand</a>
    <button>
      <span></span>
      <span></span>
      <span></span>
    </button>

    <ul class="navbar-menu">
      <li>
        <a href="#">Home</a>
      </li>
      <li>
        <a href="#">About</a>
      </li>
      <li>
        <a href="#">Team</a>
      </li>
      <li>
        <a href="#">Timeline</a>
      </li>
      <li>
        <a href="#">Conact</a>
      </li>
    </ul>
  </div>
</nav>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么不能在javascript中设置内置对象的原型?

为什么select:-moz-focusring不能在此引导导航栏中删除Firefox虚线?

为什么我不能在引导导航栏中更改.active状态?

为什么不能在iOS11中设置搜索栏的文本颜色?

为什么我不能在侧边栏和导航栏之间切换?

为什么我在If语句中设置的变量不能在javascript中的if语句之外起作用?

为什么我不能在导航栏上更改字体系列?

为什么导航栏的高度这么大?

为什么不能在Ubuntu中设置默认的Ruby版本?

为什么我不能在 GameViewController 中设置 SKScene(fileNamed:)?

为什么不能在 C# 中设置“this”

为什么我不能在代码中输入设置?

为什么我不能在画布中设置背景

为什么 javascript 'For' 语句不能在数组中工作?

为什么不能在颤动中更改凸起按钮的宽度和高度属性?

为什么Stack <T>不能在EF中作为导航属性

20.04:为什么不能在首选项的终端中打开顶栏菜单?

为什么我不能在颤动按钮栏中增加我的按钮宽度?

为什么在 Cupertino App 中更改导航栏的背景颜色会改变高度?

为什么Bash`(())`不能在`[[]]`中工作?

为什么我用 Javascript 制作的响应式导航栏只能在 iPhone 浏览器中刷新后才能工作?

在 C 中,为什么我不能在二维数组中设置元素的值?

为什么我不能点击导航栏的锚标签?

为什么我的 flexbox 导航栏不能正确对齐?

为什么我不能在关联数组 php 中取消设置数组

为什么不能在Kotlin中为int var设置lateinit?

为什么不能在Android虚拟设备配置中更改“仿真性能:图形”设置?

为什么我不能在Python中设置全局变量?

为什么我不能在这个 recyclerview 适配器中设置 setOnLongClick ?