When I used scrollspy from bootstrap I realized it only applies to the case within a single page. The following idea came up to make the menu active with a check system from the url.
Container HTML
In my case the nav
menu container is like the following.
<div class="classynav">
<ul id="nav">
<li class="nav-item">
<a href="https://example.org/about.php">Tentang</a>
</li>
<li class="nav-item active">
<a href="https://example.org/project.php">Project</a>
</li>
</ul>
</div>
Script
The principle of this script handle only matches the selected url with the url in the container. For sub menu handlers, I haven't been able to find a meaningful solution, maybe you can use the split
attribute ?id
for the php web case, or maybe you have an interesting idea, please share it in the comments.
$(function(){
var url = window.location.href;
$(".classynav a").each(function() {
var d = $(this).attr('href');
if(url == d) {
$(this).closest(".nav-item").addClass("active");
}
});
});
Done
Top comments (0)