2016-01-23 2 views
0

У меня есть меню, которое отображает или скрывает содержимое при нажатии пунктов меню. JQuery выглядит следующим образом:Javascript альтернатива "display: none"?

 $(document).ready(function() { 

    $("#bioLink").click(function(){ 
     $("#about").show(1000); 
     $("#portfolio, #contact, #expand").hide(1000); 
    }); // end bio-click 
    $("#portfolioLink").click(function(){ 
     $("#portfolio").show(1000);; 
     $("#about, #contact, #expand").hide(1000); 
    }); // end portfolio-click 
    $("#contactLink").click(function(){ 
     $("#contact").show(1000); 
     $("#about, #portfolio, #expand").hide(1000); 
    }); // end contact-click 
}); // end ready 

В старой версии сайта, все содержимое скрыто при первой загрузке страницы, с этим правилом CSS:

#about, #portfolio, #contact { 
     display:none; 
} 

Это CSS Теперь наносит ущерб с a carousel С тех пор я установил в разделе портфолио.

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

+0

это, вероятно, наносит ущерб карусели, потому что дисплей: нет; не только скрывает элемент, но и избавляет от пространства, которое оно занимает на странице. Попробуйте видимость: скрытый; который не - http://www.w3schools.com/css/css_display_visibility.asp - проверьте эти демонстрации, чтобы увидеть разницу - http://www.w3schools.com/css/tryit.asp?filename=trycss_display_none - http://www.w3schools.com/css/tryit.asp?filename=trycss_visibility_hidden – Tasos

+0

звучит как проблема XY. Карусель не должна влиять на остальную часть страницы. Что-то не так в структуре страницы где-то – charlietfl

ответ

0

Существует несколько вариантов спрятать контент на странице.

display: none; 

Это один вы в настоящее время использует, который разрушается содержание (т.е. элемент не занимает никакого места на странице.

visibility: hidden; 

Это скрывает содержание, но не коллапс, так что элемент, пока не видно до сих пор занимает столько же места на странице (полезно, если вы хотите, чтобы скрыть и показать элементы в списке или навигационной панели, не делая вещи прыгать туда и обратно).

opacity: 0; 

Аналогично видимости скрыта, но все же позволяет пользователю запускать события или вкладку элемента.

Есть еще пара, но это основные три, которые были бы полезны. Не могли бы вы рассказать о причинах хаоса? Немного сложно предоставить вам нужные инструменты, учитывая, что проблема немного расплывчата.

+0

Скрытие элементов при загрузке заставляет окно карусели отображать, возможно, десятую часть обычной ширины, и прокрутка тоже не работает. Я пробовал использовать CSS для плагина, но он даже не был достаточно кооперативным для меня, чтобы узнать, какие вопросы задавать об этом. –

+0

Можно ли разместить ссылку на свой сайт? Если нет, карусель вложен или у вас есть дубликаты идентификаторов? Можете ли вы изменить #portfolio на что-то более конкретное, что не повлияет на карусель? – michael

0

Просто инициализировать идентификаторы контента быть изначально скрыты от нагрузки документа, как это:

$(document).ready(function() { 
     $("#about, #portfolio, #contact").hide(); 
    }); 

Тогда пусть условный сценарий следовать за этим, чтобы показать и скрыть как заказано событие щелчка. Инициализация скрыть позволяет другим вещам работать без того, что ваш скрипт пытается работать одновременно. < - не знаю, правильно ли я объяснил, что

+0

Это то, что я искал, но, похоже, эти же неприятные вещи для карусели, как правило CSS, что ставит меня на квадратный. –

+0

Вы пробовали переместить этот скрипт в нижней части страницы, чтобы вы могли запустить свою карусель?И вы пробовали noConflict.js? – LOTUSMS

+0

это плохая замена для того, что OP уже имело в css .... должен ждать, когда dom будет готов, прежде чем он начнет удалять, тогда как css не позволит сразу отобразить его. – charlietfl

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