jquery - How to add an event listener when an element is transformed? -
i'm developing responsive website using bootstrap 3 many features, 1 of them when website displayed on mobile drop down menu displayed ( on desktop have normal menu , on mobile version transform collapsing drop down menu) problem need event listener able listen when normal menu transformed collapsing drop down menu, there way that? many thanks.
html code:
<div class="container-sm visible-sm visible-xs container visible-md visible-lg"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span class="sr-only">left menu</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <div class="navbar-collapse collapse"> <div id="sidenavbox" class="ms-dialoghidden ms-forcewrap ms-nolist"> <!-- lot of code included in dropdown menu --> </div> </div> </div>
css:
@media (min-width: 768px) { .navbar-toggle { display: none; } .navbar-toggle { position: relative; padding: 9px 10px; margin-top: 8px; margin-bottom: 8px; background-color: rgb(241, 241, 241); background-image: none; border: 1px solid rgb(241, 241, 241); border-radius: 4px; width: 695px; }
so how can add event listener detect when menu transformed collapsing drop down menu?
you can use window.matchmedia
create such event, see minimal code example here:
var mql = window.matchmedia('only screen , (min-width: 768px)'), handlemql = function(mql) { if (mql.matches) { console.log('match'); // media query match // fire on event here } else { console.log('unmatch'); // media query not match anymore // fire off event here } }; mql.addlistener(handlemql); // optional (in case need state on page load) // see info below. handlemql(mql);
the listener fires when there change in target media query's state. if need media query's state on page load, create function handle state change , can call function on own, example above.
in case you'll need older browser support, use polyfill matchmedia.js
Comments
Post a Comment