Skip to content

Instantly share code, notes, and snippets.

@usaphp
Created July 1, 2014 12:33
Show Gist options
  • Star 33 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save usaphp/42133e78aa5f8f760a3f to your computer and use it in GitHub Desktop.
Save usaphp/42133e78aa5f8f760a3f to your computer and use it in GitHub Desktop.
// HTML:
<div class="display-type"></div>
// CSS:
// set the content of an element depending on the media query
@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
.display-type {
content: "tablet";
}
}
@media (max-width: @screen-xs-max) {
.display-type {
content: "phone";
}
}
// JAVASCRIPT
if($('.display-type').css('content') == "tablet"){
// Actions for tablets
}
if($('.display-type').css('content') == "phone"){
// Actions for smartphones
}
@murum
Copy link

murum commented Jul 5, 2014

I saw jeremenicheills comment and why not work with the code something like this? I think it is slightly more structured, little bit more code but can be used multiple times without doing tons of DOM search for the class display-type etc.

// JAVASCRIPT
$(function() {
    var displayType = function() {
        return $('.display-type').css('content');
    }

    var display = displayType();
    $(window).on('resize', function() {
        display = displayType();
    })

    if(display == "tablet"){
      // Actions for tablets
    }

    if(display == "phone"){
      // Actions for smartphones
    }
});

@vilmosioo
Copy link

@murum I'm afraid your code does not have any DOM access improvements. You should consider saving the element in a variable. :) Also, debounce your resize handler.
My 0.02

@vilmosioo
Copy link

Awesome technique!

@breakerfall
Copy link

Jeremy Keith wrote a bit about this technique too, back in the day

http://adactio.com/journal/5429/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment