Изменить: эта библиотека теперь доступна через Bower и NPM. Подробнее см. Репозиторий github.
ОБНОВЛЕННЫЙ ОТВЕТ:
Отказ от ответственности: я автор.
Вот несколько вещей, которые вы можете сделать с помощью последней версии (Responsive Bootstrap Toolkit 2.5.0):
(function($, viewport){
if( viewport.is('xs') ) {
}
if( viewport.is('>=sm') ) {
}
if( viewport.is('<md') ) {
}
$(document).ready(function() {
if( viewport.is('xs') ) {
}
});
$(window).resize(
viewport.changed(function() {
if( viewport.is('xs') ) {
}
})
);
})(jQuery, ResponsiveBootstrapToolkit);
Начиная с версии 2.3.0, вам не нужны четыре <div>
элемента, упомянутые ниже.
ОРИГИНАЛЬНЫЙ ОТВЕТ:
Не думаю, что для этого нужен какой-то огромный скрипт или библиотека. Это довольно простая задача.
Вставьте следующие элементы непосредственно перед </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>
Эти 4 блока позволяют проверить текущую активную точку останова. Для легкого обнаружения JS используйте следующую функцию:
function isBreakpoint( alias ) {
return $('.device-' + alias).is(':visible');
}
Теперь, чтобы выполнить определенное действие только на самой маленькой точке останова, которую вы могли бы использовать:
if( isBreakpoint('xs') ) {
$('.someClass').css('property', 'value');
}
Обнаружить изменения после того, как DOM готова, также довольно просто. Все, что вам нужно, это легкий слушатель изменения размера окна, подобный этому:
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();
После того, как вы его оснастили, вы можете начать прислушиваться к изменениям и выполнять функции, специфичные для точки останова, например:
$(window).resize(function () {
waitForFinalEvent(function(){
if( isBreakpoint('xs') ) {
$('.someClass').css('property', 'value');
}
}, 300, fullDateString.getTime())
});
<div class="d-none d-?-block"></div>
изменений видимости (вставьте желаемую точку останова). Эти классы CSS предназначены для Bootstrap 4 ... используйте все, что работает в Bootstrap 3. Намного более производительно, чем прослушивание события изменения размера окна.