Самый простой способ управления такими разделами контента, как я нашел, - это поместить их в общий контейнер, а затем использовать CSS для управления тем, какой дочерний раздел отображается внутри родительского элемента.
Lookingв приведенном ниже коде я сначала начал с добавления родительского <div>
с id
для «contentSections»:
<div id="contentSections">
. . .
</div>
После этого я установил стиль по умолчанию для каждого из «контейнеров» div
разделов внутри, чтобы быть display: none;
:
#contentSections .container {display: none;}
Теперь, с этой настройкой, вы можете изменить класс на родительском (я добавил класс, который соответствует идентификатору пункта меню, который был синхронизирован) и настроить CSS-стили для отображения раздела содержимого, который должен отображаться при применении класса к родительскому элементу, с использованием этого шаблона:
<p class="dropAns" id="MENU_ID">MENU_TEXT</p>
#contentSections.MENU_ID #SECTION_ID {display: block;}
После того, как для каждого элемента меню / раздела содержимого было выполнено сопряжениеCSS настроен для этого, это просто вопрос обновления родительского контейнера с соответствующим классом, когда элемент меню нажимается:
$(".dropAns").on('click', function(e) {
$("#contentSections")[0].className = e.target.id;
});
ПРИМЕЧАНИЕ: Есть номердругих вещей, которые я бы очистил (например, можно было бы выполнить без jQuery, можно было бы реорганизовать использование атрибутов id
и class
для удаления кода и т. д.), но я не хотел вносить слишком много измененийдо такой степени, что код станет незнакомым.Это должно дать вам представление о концепции, лежащей в основе этого.
ОБНОВЛЕНИЕ № 1: Забыл по умолчанию использовать "contentSections", чтобы показывать контент "Welcome".Для обработки этого добавлен класс по умолчанию «wel» в родительский контейнер.
//for phone add an on click event for .dropdown, and pust display:show for .dropdown-content
$(".dropdown").click(function() {
$(".dropdown-content").toggle();
});
// add click event for .dropdown-content
$(".dropAns").on('click', function(e) {
$("#contentSections")[0].className = e.target.id;
});
#contentSections .container {display: none;}
#contentSections.wel #welcome {display: block;}
#contentSections.me #aboutMe {display: block;}
#contentSections.port #portfolio {display: block;}
#contentSections.yubby #tubez {display: block;}
#contentSections.contact #cont {display: block;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<nav class="dropdown">
<p class="animated pulse" id="pimp"> Juan Alberto Pimentel JR
</p>
<div class="dropdown-content">
<p class="dropAns" id="wel">Welcome</p>
<p class="dropAns" id="me">About Me</p>
<p class="dropAns" id="port">Portfolio</p>
<p class="dropAns" id="yubby">Youtube</p>
<p class="dropAns" id="contact">Contact</p>
</div>
</nav>
<div id="contentSections" class="wel">
<div class="container" id="welcome">**Welcome content**</div>
<div class="container" id="aboutMe">**About Me content**</div>
<div class="container" id="portfolio">**Portfolio content**</div>
<div class="container" id="tubez">**YouTube content**</div>
<div class="container" id="cont">**Contact content**</div>
</div>