2014-09-08 3 views
-1

У меня есть div, называемый «navbar_menu». Когда вы нажимаете, я хочу, чтобы div «nav_overlay» исчезал, а затем, когда его снова щелкнули, я хочу, чтобы он исчез, чтобы не быть видимым.Использование Javascript для включения и выключения наложения

В настоящее время я поставил Див «nav_overlay„на „дисплей: нет“, а затем, используя следующий JavaScript, он показывает себя, когда „navbar_menu“ щелкает

$(document).ready(function(){ 
    $(".navbar_menu").click(function(){ 
    $("nav ul").toggleClass("showing"); 
     $("#nav_overlay").fadeTo("fast", 0.8); 
    }); 
}); 

тег.“Навигационный ул «это просто меню, которое сдвигается, когда нажимается« navbar_menu ». Дело в том, что наложение покрывает контент, когда меню выйдет из меню, а затем, когда меню снова скользит, оверлей исчезает.

Я что мне нужен оператор if, проверяющий, является ли div видимым или нет? Я просто выиграл, если есть кто-нибудь, кто может помочь с лучшим решением для этого.

Большое спасибо.

+0

Не могли бы вы разместить соответствующий HTML-код и (еще лучше) собрать все вместе в JSFiddle? – DevlshOne

+0

Извините, вот ссылка ti jsfiddle для примера: http://jsfiddle.net/Forresty/un2fpuy4/2/ Извините письмо «A», которое заменяется символьным шрифтом. Я пытаюсь заменить «A» на «B» на клик тоже ... и затем снова переключитесь обратно. Любая помощь с этим будет также оценена. – Forrest

ответ

0

Что-то, как это должно работать:

$("#nav_overlay").fadeToggle() 

Смотрите documentation для опций.

PS: Я полагаю, что наложение имеет необходимые стили, чтобы покрыть всю страницу позицией: исправлено или что-то в этом роде.

+0

Спасибо. Я создал пример на jsfiddle здесь: http://jsfiddle.net/Forresty/un2fpuy4/2/ Извините письмо «A» .., которое заменяется символьным шрифтом. Я пытаюсь заменить «A» на «B» на клик тоже ... и затем снова переключитесь обратно. Любая помощь с этим будет также оценена. – Forrest

+0

http://jsfiddle.net/un2fpuy4/7/ - это то, что можно сделать, если вы действительно хотите использовать псевдоэлементный подход. В противном случае вы можете просто изменить textContent якоря с помощью JS. – Optimizer

+0

Большое спасибо. В jquery я использовал метод .text, который можно увидеть здесь: http://jsfiddle.net/Forresty/un2fpuy4/9/. Этот подход лучше, чем псевдо-метод? – Forrest

0
if($('#your-element').is(":visible")){ 
    // #your-element is visible. 
} else { 
    // #your-element is not visible 
} 

Это должно проверить, если что-то видно или нет, но ссылку или jsfiddle на ваш HTML, а также будет полезно.

+0

Вот ссылка на пример, который я сделал на jsfiddle: http://jsfiddle.net/Forresty/un2fpuy4/2/ – Forrest

0

Предполагая, что CSS-класс «показ» только заставляет элемент отображаться. Вы можете использовать функцию .toggle, чтобы заставить ее скрываться и снова появляться самостоятельно.

http://api.jquery.com/toggle/

http://api.jquery.com/fadetoggle/

// Will automatically hide/display element 
$("nav ul").toggle(); 

// Same as toggle but with fade effect 

$("#nav_overlay").fadeToggle("fast"); 
+0

Класс «показ» не влияет на наложение. Я хочу, чтобы наложение было невидимым изначально, поэтому я установил его на «display: none». Я просто хочу включить и выключить его при нажатии кнопки «navbar_menu». Я пробовал то, что вы предлагали, но, похоже, он не переключается. Он переключается, а затем остается включенным. – Forrest

Смежные вопросы