Edit: Esta biblioteca está agora disponível através do Bower e NPM. Veja o repositório do github para obter detalhes.
RESPOSTA ATUALIZADA:
Disclaimer: Eu sou o autor.
Aqui estão algumas coisas que você pode fazer usando a versão mais recente (Responsive Bootstrap Toolkit 2.5.0):
// Wrap everything in an IIFE
(function($, viewport){
// Executes only in XS breakpoint
if( viewport.is('xs') ) {
// ...
}
// Executes in SM, MD and LG breakpoints
if( viewport.is('>=sm') ) {
// ...
}
// Executes in XS and SM breakpoints
if( viewport.is('<md') ) {
// ...
}
// Execute only after document has fully loaded
$(document).ready(function() {
if( viewport.is('xs') ) {
// ...
}
});
// Execute code each time window size changes
$(window).resize(
viewport.changed(function() {
if( viewport.is('xs') ) {
// ...
}
})
);
})(jQuery, ResponsiveBootstrapToolkit);
A partir da versão 2.3.0, você não precisa dos quatro <div>
elementos mencionados abaixo.
RESPOSTA ORIGINAL:
Eu não acho que você precise de um script ou biblioteca enorme para isso. É uma tarefa bastante simples.
Insira os seguintes elementos imediatamente antes </body>
:
<div class="device-xs visible-xs"></div>
<div class="device-sm visible-sm"></div>
<div class="device-md visible-md"></div>
<div class="device-lg visible-lg"></div>
Essas 4 divs permitem verificar o ponto de interrupção atualmente ativo. Para uma fácil detecção de JS, use a seguinte função:
function isBreakpoint( alias ) {
return $('.device-' + alias).is(':visible');
}
Agora, para executar uma determinada ação apenas no menor ponto de interrupção que você poderia usar:
if( isBreakpoint('xs') ) {
$('.someClass').css('property', 'value');
}
Detectar alterações após o DOM estar pronto também é bastante simples. Tudo que você precisa é de um ouvinte de redimensionamento de janelas leve como este:
var waitForFinalEvent = function () {
var b = {};
return function (c, d, a) {
a || (a = "I am a banana!");
b[a] && clearTimeout(b[a]);
b[a] = setTimeout(c, d)
}
}();
var fullDateString = new Date();
Depois de equipado, você pode começar a ouvir alterações e executar funções específicas do ponto de interrupção, como:
$(window).resize(function () {
waitForFinalEvent(function(){
if( isBreakpoint('xs') ) {
$('.someClass').css('property', 'value');
}
}, 300, fullDateString.getTime())
});
<div class="d-none d-?-block"></div>
alteração de visibilidade (insira o ponto de interrupção desejado). Essas classes CSS são para o Bootstrap 4 ... usam o que funciona no Bootstrap 3. Muito mais desempenho do que ouvir eventos de redimensionamento de janelas.