JSFiddle - React, Tailwind, and code Playground
HTML
<div id="nav-show"> <a class="m-btn rnd black mobile-hide current_page_item" href="">Home</a>
<a class="m-btn rnd black mobile-hide" href="">About</a>
<a class="m-btn rnd black mobile-hide" href="">Projects</a>
<a class="m-btn rnd black mobile-hide" href="">Quality</a>
<a class="m-btn rnd black mobile-hide" href="">Products</a>
<a class="m-btn rnd black mobile-hide" href="">Contact Us</a>
<a class="m-btn rnd black mobile-hide" href="">Links</a>
</div>
CSS
#magic-line {
position: absolute;
top: 2px;
left: 0;
width: 10px;
height: 12px;
background: #fe4902;
}
JavaScript
$(function() {
var $el;
var leftPos;
var newWidth;
var $mainNav = $("#nav-show");
$mainNav.append("<span id='magic-line'></span>");
var $magicLine = $("#magic-line");
$magicLine
.width($(".current_page_item").width())
.css("left", $("a.current_page_item").position().left)
.data("origLeft", $magicLine.position().left)
.data("origWidth", $magicLine.width());
$("#nav-show a").hover(function() {
$el = $(this);
leftPos = $el.position().left;
newWidth = $el.width();
$magicLine.stop().animate({
left: leftPos,
width: newWidth
});
}, function() {
$magicLine.stop().animate({
left: $magicLine.data("origLeft") + "px",
width: $magicLine.data("origWidth") + "px"
});
});
});