Skip to content

Instantly share code, notes, and snippets.

@swright987
Forked from SimonPadbury/hovernav.css
Last active August 29, 2015 13:56
Show Gist options
  • Save swright987/9334948 to your computer and use it in GitHub Desktop.
Save swright987/9334948 to your computer and use it in GitHub Desktop.
/*
Navbar "hovernav" dropdown menu - this works only for screen sizes larger than phones.
The Bootstrap CSS is unchanged. If you don't want this, delete this segment of the CSS
and delete the corresponding segment of bst.js
*/
@media (min-width: 768px) {
.navbar-nav .open ul {
display: none;
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:hover,
.navbar-default .navbar-nav > .open > a:focus,
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus {
background: transparent;
}
.navbar-default .navbar-nav > .hovernav > a {
}
.navbar-inverse .navbar-nav > .hovernav > a {
}
.navbar-default .navbar-nav > .hovernav:hover > a,
.navbar-default .navbar-nav > .hovernav:hover > a:hover,
.navbar-default .navbar-nav > .hovernav:hover > a:focus {
}
.navbar-default .navbar-nav > li:hover {
}
.navbar-nav .hovernav:hover > .dropdown-menu {
display: block;
}
}
(function($){
function WidthChange(mq) {
if (mq.matches) {
$('.navbar-nav .dropdown').addClass('hovernav').children('.dropdown-toggle').attr('data-toggle', '');
} else {
$('.navbar-nav .dropdown').removeClass('hovernav').children('.dropdown-toggle').attr('data-toggle', 'dropdown');
}
}
$(document).ready(function() {
/*
** "Hovernav" navbar dropdown on hover
** Delete this segment if you don't want it, and delete the corresponding CSS
** Uses jQuery Media Query - see http://www.sitepoint.com/javascript-media-queries/
*/
/*
** swright987 Edit - reset data-toggle attribute to '' allows top level to function
** as a link when hovernav is enabled. Replace with 'dropdown' to restore proper
** functionality for mobile
*/
var mq = window.matchMedia('(min-width: 768px)');
if (mq.matches) {
$('.navbar-nav .dropdown').addClass('hovernav').children('.dropdown-toggle').attr('data-toggle', '');
} else {
$('.navbar-nav .dropdown').removeClass('hovernav').children('.dropdown-toggle').attr('data-toggle', 'dropdown');
}
/*
The addClass/removeClass also needs to be triggered
on page resize <=> 768px
*/
if (matchMedia) {
mq = window.matchMedia('(min-width: 768px)');
mq.addListener(WidthChange);
new WidthChange(mq);
}
});
})(jQuery);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment