แก้ไข: ห้องสมุดนี้สามารถใช้ได้ผ่าน Bower และ NPM ดู repo GitHub สำหรับรายละเอียด
ปรับปรุงคำตอบ:
คำเตือน: ฉันเป็นผู้เขียน
นี่คือบางสิ่งที่คุณสามารถทำได้โดยใช้เวอร์ชันล่าสุด (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 divs เหล่านี้ช่วยให้คุณตรวจสอบเบรกพอยต์ที่ใช้งานอยู่ในปัจจุบัน สำหรับการตรวจจับ 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 มีประสิทธิภาพมากกว่าการฟังการปรับขนาดหน้าต่าง