Редагувати: Ця бібліотека тепер доступна через Bower та NPM. Докладніше дивіться у github repo.
ОНОВЛЕНА ВІДПОВІДЬ:
Відмова: Я автор.
Ось кілька речей, які можна зробити за допомогою останньої версії (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);
З версії 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. Набагато ефективніше, ніж прослуховування події зміни розміру вікон.