首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在jquery .show()之后nav不起作用

在jquery .show()之后nav不起作用
EN

Stack Overflow用户
提问于 2015-01-08 14:06:04
回答 2查看 290关注 0票数 3

我的导航有一个边界底部悬停,在你滑下后,我的第一个导航gits隐藏和我的第二个导航显示。导航有相同的css,但我的边界底部的第二个导航不工作。这是我的css或jquery的问题吗?有人能帮我解决这个问题吗?

HTML:

代码语言:javascript
复制
<header>
        <a href="#home" id="logo" class="smoothScroll">
            <img src="img/logo.png">
        </a>
        <nav>
            <a href="#home" class="smoothScroll">Home</a>
            <a href="#about" class="smoothScroll">About</a>
            <a href="#projects" class="smoothScroll">Projects</a>
            <a href="#contact" class="smoothScroll">Contact</a>
        </nav>
    </header>
    <div id="header" class="fade">
        <a href="#home" id="logo" class="smoothScroll">
            <img src="img/logo-white.png">
        </a>
        <nav>
            <a href="#home" class="smoothScroll">Home</a>
            <a href="#about" class="smoothScroll">About</a>
            <a href="#projects" class="smoothScroll">Projects</a>
            <a href="#contact" class="smoothScroll">Contact</a>
        </nav>
    </div>

Jquery:

代码语言:javascript
复制
$(window).scroll(function() {
    if ($(window).scrollTop() > 100 ){
        $('header').show();
        $('header').removeClass('slideUp');
        $('header').addClass('slideDown');
        $('#header').addClass('hide');
    } else {
        $('header').addClass('slideUp');
        $('#header').removeClass('hide');
    };      
});

CSS:

代码语言:javascript
复制
header, #header{
  height: 75px;
  background: rgba(26, 28, 30, 0.75);
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  z-index: 50;
}
header{
  display: none;
}
#header{
  background-color: transparent;
}
nav{
  position: fixed;
  right: 0;
  margin-top: 22.5px; 
  margin-right: 30px;
  z-index: 55;
}
nav a:link, nav a:visited{
  position: relative;
  display: inline-block;
  padding: 0px 10px 0px 10px;
  text-decoration: none;
  font-size: 1.5em;
  color: #fffffa;
}
nav a:after{
  content: '';
  display: block;
  margin: auto;
  width: 0px;
  background: transparent;
  transition: width .5s ease, 
  background-color .5s ease;
}
nav a:hover:after{
  width: 100%;
  border-bottom: 2px solid #fffffa !important;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-08 14:16:54

看起来您的JQuery在id选择器中出现了一些语法问题。确保包括#

代码语言:javascript
复制
$(window).scroll(function() {
    if ($(window).scrollTop() > 100 ){
        $('#header').show();
        $('#header').removeClass('slideUp');
        $('#header').addClass('slideDown');
        $('#header').addClass('hide');
    } else {
        $('#header').addClass('slideUp');
        $('#header').removeClass('hide');
    };      
});

编辑

根据反馈,我已经重新访问了这个问题,并精心设计了我的解释,我相信什么将解决这一问题。持续的反馈将很好地解决这一问题。

代码语言:javascript
复制
$(window).scroll(function() {
    if ($(window).scrollTop() > 100 ){
        $('header').addClass('hide');
        $('#header').removeClass('hide');
    } else {
        $('#header').addClass('hide');
        $('header').removeClass('hide');
    };      
});

更新的JSFiddle链路

票数 4
EN

Stack Overflow用户

发布于 2015-01-08 14:43:11

脚本中的第一个问题是HTML代码。您应该将第二个导航放在header元素中,如下所示:

代码语言:javascript
复制
 <header>
     <nav id="first-nav">
        <a href="#home" class="smoothScroll">Home</a>
        <a href="#about" class="smoothScroll">About</a>
        <a href="#projects" class="smoothScroll">Projects</a>
        <a href="#contact" class="smoothScroll">Contact</a>
     </nav>
     <nav id="second-nav">
        <a href="#home" class="smoothScroll">Home</a>
        <a href="#about" class="smoothScroll">About</a>
        <a href="#projects" class="smoothScroll">Projects</a>
        <a href="#contact" class="smoothScroll">Contact</a>
     </nav>
 </header>

为了便于操作,我给出了“第一导航”和“第二导航”的标识。第二个问题是你的jQuery。在if条件下,当浏览器滚动超过100时,告诉jQuery隐藏标头元素。这就是问题所在,因为导航元素需要在标头元素中使用。

我编辑了你的jQuery。

代码语言:javascript
复制
   $(document).ready(funciton() {
      //hide the second nav
      $('#second-nav').hide();

      //when the scroll event fired
      $(window).scroll(function() {
           if ($(window).scrollTop() > 100) {
               $('#second-nav').show();
               $('#first-hav').hide();
           }
           else {
               $('#first-nav').show();
               $('#second-hav').hide();
           }
      }); 
   });

如果有什么不清楚的地方请告诉我,我很乐意帮忙。

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

https://stackoverflow.com/questions/27842009

复制
相关文章

相似问题

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