2015-02-04 6 views
0

У меня есть навигатор, у которого нет границы. Я хотел бы добавить границу на навигационной панели, когда она прокручивается с определенной осью Y, а затем возвращается к исходной панели навигации. На этом этапе я использую jQuery fadeIn и fadeOut, и я не могу заставить navbar работать правильно. Вот мои js для этого.Navbar fadeIn и fadeOut

window.addEventListener("scroll", function() { 
if (window.scrollY > 500) { 

    $('.nav').fadeIn('slow'); 
} 
else { 
    $('.nav').fadeOut(); 
} 
},false); 

Вот мой index.html

<nav role="navigation" id="top-nav" class="navbar-fixed-top"> 
     <ul class="nav nav-pills" id="nav1"> 
      <li role ="presentation"><h1>Modern Concepts</h1> 
      <li role="presentation" class="first-Anchor"><a  href="#myAnchor">Inovate</a></li> 
      <li role="presentation"><a href="#myAnchorToo">Design</a></li> 
      <li role="presentation"><a href="#">Build</a></li> 
     </ul> 
    </nav> 

Вот мой CSS.

ul.nav { 
    display: none; 
    border: 3px solid black 

ответ

0

Каков текущий результат воздействия?

Просто дружественное напоминание: вы используете jQuery, но вы также используете собственные методы (windows.addEventListener). Может быть, идея избежать смеси и использовать свиток-событие jQuery (https://api.jquery.com/scroll/). Только для унифицированного стиля кода.

+0

Спасибо за совет, что вы не смешиваете собственные методы с помощью jQuery. Прямо сейчас, результат состоит в том, что navbar вообще не отображается в начале, а затем, когда я просматриваю его, появляется. Я надеюсь, что ul> li появится без границы. И затем, когда я прокручу вниз по Y, появится граница. – diwao11

+0

Ваша цель - прокручивать, только когда вы находитесь ниже 500 (px?), И в противном случае навигационная панель должна отображаться? – Fury

0

Возможно, мне что-то не хватает, но на основе того, что вы предоставляете, похоже, что вы скрываете меню изначально (отображение: нет) и отображаете его только после прокрутки пользователя через fadeIn. Так он работает, как вы просили.

Основываясь на ваших других комментариях, похоже, что вы не хотите fadeIn/fadeOut, но просто измените стиль (рамку). Если это действительно то, что вы хотите, затем определите класс для границы и используйте положение прокрутки для переключения этого класса.

+0

Bobdye спасибо. Думаю, я сделал это сложнее, чем предполагалось. – diwao11

+0

window.addEventListener ("scroll", function() { if (window.scrollY> 500) { $ ('. Nav'). ToggleClass ('# nav1'); } }); – diwao11

1

Вы должны получить pageOffset окна, чтобы проверить, где вы находитесь в свитке ...

window.addEventListener("scroll", function() { 
    console.log(window.pageYOffset); 
    if (window.pageYOffset > 500) { 
     //do the magic 
    } else { 
     //go back to original state 
    } 
}, false); 

Вот рабочий пример с множеством различных настроек ... удачи:

http://jsfiddle.net/pu1yLe4u/2/

+0

Благодарю вас за скрипку. Я думаю, что, может быть, я не задаю свой вопрос правильно. Badefadein и fadeOut делают именно то, что у меня уже есть. То, что я ищу, - это навигация, чтобы быть наверху, а затем, когда я прокручиваю вниз, чтобы он имел границу. – diwao11

+0

В вашем javascript-коде вы можете добавить CSS динамически в определенный момент ... Пример: $ ('. Nav'). Css ('border', '3px solid black'); – spooky

+0

Spooky. Спасибо, мужик! – diwao11