Chỉnh sửa: Thư viện này hiện có sẵn thông qua Bower và NPM. Xem repo github để biết chi tiết.
CẬP NHẬT TRẢ LỜI:
Tuyên bố miễn trừ trách nhiệm: Tôi là tác giả.
Dưới đây là một số điều bạn có thể thực hiện bằng phiên bản mới nhất (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);
Kể từ phiên bản 2.3.0, bạn không cần bốn <div>
yếu tố được đề cập dưới đây.
TRẢ LỜI GỐC:
Tôi không nghĩ rằng bạn cần bất kỳ kịch bản hoặc thư viện lớn cho điều đó. Đây là một nhiệm vụ khá đơn giản.
Chèn các yếu tố sau ngay trước </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 div này cho phép bạn kiểm tra điểm dừng hiện đang hoạt động. Để phát hiện JS dễ dàng, hãy sử dụng chức năng sau:
function isBreakpoint( alias ) {
return $('.device-' + alias).is(':visible');
}
Bây giờ để thực hiện một hành động nhất định chỉ trên điểm dừng nhỏ nhất bạn có thể sử dụng:
if( isBreakpoint('xs') ) {
$('.someClass').css('property', 'value');
}
Phát hiện các thay đổi sau khi DOM sẵn sàng cũng khá đơn giản. Tất cả bạn cần là một cửa sổ nhẹ thay đổi kích thước người nghe như thế này:
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();
Khi bạn đã được trang bị nó, bạn có thể bắt đầu lắng nghe các thay đổi và thực hiện các chức năng dành riêng cho điểm dừng như vậy:
$(window).resize(function () {
waitForFinalEvent(function(){
if( isBreakpoint('xs') ) {
$('.someClass').css('property', 'value');
}
}, 300, fullDateString.getTime())
});
<div class="d-none d-?-block"></div>
thay đổi mức độ hiển thị (chèn điểm dừng mong muốn của bạn). Các lớp CSS đó dành cho Bootstrap 4 ... sử dụng bất cứ thứ gì hoạt động trong Bootstrap 3. Hiệu suất cao hơn nhiều so với nghe sự kiện thay đổi kích thước cửa sổ.