JSFiddle - React, Tailwind, and code Playground
by alpacalips
HTML
<div id="wrap">
<nav id="main-menu">
<ul>
<li><a class="first-link parent" rel="first-widget" href="">First Link</a></li>
<li><a class="second-link parent" rel="second-widget" href="">Second Link</a></li>
<li><a class="third-link parent" rel="third-widget" href="">Third Link</a></li>
<li><a class="fourth-link parent" rel="fourth-widget" href="">Fourth Link</a></li>
</ul>
</nav><!-- #main-menu !-->
<div id="first-widget" class="widget-container">
<h2>Sub Title 1</h2>
<p>Lorem Ipsum
<a href="#">Read More</a></p>
</div><!-- .first-widget !-->
<div id="second-widget" class="widget-container">
<h2>Sub Title 2</h2>
<p>Lorem Ipsum
<a href="#">Read More</a></p>
</div><!-- .second-widget !-->
<div id="third-widget" class="widget-container">
<h2>Sub Title 3</h2>
<p>Lorem Ipsum
<a href="#">Read More</a></p>
</div><!-- .third-widget !-->
<div id="fourth-widget" class="widget-container">
<h2>Sub Title 4</h2>
<p>Lorem Ipsum
<a href="#">Read More</a></p>
</div><!-- .fourth-widget !-->
</div>
CSS
a {
color: red;
}
a.foo {
color: green;
}
#wrap {
position: relative;
top: 10px;
left: 10px;
border: 1px solid black;
}
#main-menu li {
display: inline;
}
.widget-container {
display: none;
}
JavaScript
$('#main-menu a').hover(function() {
var $this = $(this);
var id = $this.attr('rel');
var $currentWidget = $('#' + id);
if(!$this.hasClass('foo')){
$this.addClass('foo');
}
$('#main-menu a').not(this).removeClass('foo');
$currentWidget.show()
.siblings('.widget-container')
.hide();
});
$('#wrap').mouseleave(function() {
$('.widget-container').hide();
$('#main-menu ul li a').removeClass('foo');
});