【问题标题】:Show or hide HTLM according to the position of the user in the page根据用户在页面中的位置显示或隐藏 HTML
【发布时间】:2016-07-28 14:35:04
【问题描述】:

我想在我的网站上创建一个水平导航栏。 我也希望它“动态地”出现和消失, 根据用户在页面中的位置,但我无法做到 正确地做。这是我的代码:

HTML:

<script src='scripts/navbar.js'></script>
<ul id="navbar" onscroll="showHideNavbar();">
    <li>LOGOHERE</li>
    <li><a id="home-link-navbar">Home</a></li>
    <li><a id="projects-link-navbar">Projects</a></li>
    <li><a id="about-link-navbar">About</a></li>
    <li><a id="contact-link-navbar">Contact</a></li>
</ul>
<script type="text/javascript">
    showHideNavbar();
</script>

和 navbar.js 中的 JS:

function showHideNavbar()
{
    console.log(window.pageXOffset);
    if(window.pageXOffset < 1000){
        document.getElementById("navbar").style.opacity = 0;
    }
    if(window.pageXOffset > 1000 && window.pageXOffset < 2000){
        document.getElementById("navbar").style.opacity = window.pageXOffset/10000*5;
    }
    else{
        document.getElementById("navbar").style.opacity = 1;
    }
}

你能帮帮我吗?

【问题讨论】:

  • 也发navbar.js
  • 当前的 js 脚本是 navbar.js 中的那个。我会更正我的帖子。谢谢

标签: javascript html scroll show-hide


【解决方案1】:

您需要定期调用此函数,但您只需执行一次。

使用setInterval() 进行操作

<script type="text/javascript">
    setInterval(showHideNavbar,100);
</script>

另外,pageXOffset 是水平偏移量,但您似乎想要pageYOffset

【讨论】:

  • 好的,但是我把它放在哪里了?在 HTML 的 选择器中?
  • 它一直在控制台“0”中输出我,即使我向下滚动。
  • 废话!我知道了 !对不起。我一直在寻找 X 坐标,但实际上我需要跟踪 Y 坐标!现在好了,我的价值观很好。
  • @Noc 哈哈,确实。甚至没有注意到这一点。以防万一,我会将其添加到答案中。
  • @Noc 如果您觉得我至少提供了一点帮助,您可以接受答案(单击复选标记)。这由您决定,我最初并没有完全解决您的问题。
猜你喜欢
  • 1970-01-01
  • 2014-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多