如何使用JavaScript检测Twitter Bootstrap 3的响应断点?

Currently,Twitter Bootstrap 3有以下响应断点:768像素,992像素和1200像素,分别代表小型,中型和大型设备。

如何使用JavaScript检测这些断点?

我想用JavaScript监听屏幕改变时触发的所有相关事件。并能够检测屏幕是否用于小型,中型或大型设备。

有什么已经做了吗?你的建议是什么?

编辑:此库现在可通过Bower和NPM。有关详细信息,请参阅github repo。

更新答案:

> Live example:CodePen
>最新版本:Github repository
>不喜欢Bootstrap吗?检查:Foundation demoCustom framework演示
>有问题吗? Open an issue

免责声明:我是作者。

以下是您可以使用最新版本(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&gt ;:之前插入以下元素:

<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允许你检查当前活动断点。要进行简单的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())
});
http://stackoverflow.com/questions/18575582/how-to-detect-responsive-breakpoints-of-twitter-bootstrap-3-using-javascript

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:如何使用JavaScript检测Twitter Bootstrap 3的响应断点?