Javascript Media Queries
Javascript media queries used to be a pain in the butt. I won't go in to why because thanks to window.matchMedia
it's now very easy.
window.matchmedia
has a matches property which returns a boolean value, so to run it once just use it something like and if
statement:
if(window.matchMedia("(min-width: 500px)").matches) {
/* the viewport is at least 500 pixels wide */
} else {
/* the viewport is less than 500 pixels wide */
}
It's also possible to add a listener to call a function to run some code whenever the query return value changes:
if(matchMedia){ // Only run if matchMedia is supported
const media_query = window.matchMedia("(max-width : 500px)"); // Create media query
media_query.addListener(widthChange); // Optional listener with function to run
widthChange(media_query); // Initial run
}
function widthChange(media_query){
if(media_query.matches){ // If the media query resolves true
// window width is under 500px wide
console.log('Under');
} else {
// window width is more than 500px wide
console.log('Over');
}
}