Bootstrap导航栏垂直于水平或反之亦然。事件触发

时间:2016-06-21 18:56:01

标签: javascript jquery html css twitter-bootstrap

Bootstrap有默认的导航栏模块,它有垂直和水平类,并根据屏幕分辨率进行操作(对于移动和小屏幕尺寸,它变得紧凑/垂直)。

检查Link。将屏幕大小调整为小尺寸

现在我希望在发生这种情况时收到通知。换句话说,我想要一个事件处理程序,以便在代码中我知道这发生的时间。是否有任何预定义的事件处理例程,或者我会有自定义代码。 Jquery或javascript都很好

修改 只是添加这个东西。我正在寻找一个通用的解决方案,即使没有使用默认宽度值(宽度:767px)。

2 个答案:

答案 0 :(得分:2)

您可以在窗口的宽度属性

中观看
$(window).resize(function() {
  if($(window).width() < 768){
     //do something
    } 
});

767px是适用于移动设备的bootstrap max-width

答案 1 :(得分:2)

这实际上是一个有趣的问题。由于Bootstrap导航栏的样式更改是在CSS中完成的,因此您的选择非常有限(而不是强迫jQuery或JS函数中的样式更改。

理论上,您可以使用“style”属性上的变异观察器将侦听器置于样式属性更改中。如今支持非常好:CanIuse Mutation Observers

SOMEDOMITEM.addEventListener('DOMAttrModified', function(e){
  if (e.attrName == 'style') {
    //check how the style has changed and respond appropriately
  }

但是,最简单的方法是确认导航栏触发的引导断点的水平宽度(取决于你是否覆盖了它在768px处触发)并使用响应断点的JS API:Like Enquire JS < / p>

enquire.register("screen and (max-width: 767px)", {
    match : function() {
           //Do something
    },  
    unmatch : function() {
           //undo something
    }
});

后者的好处与听取浏览器宽度更改相反,您注册的断点与CSS中的格式相同;