将叠加层附加到bootstrap 3移动导航切换后面的内容

时间:2015-01-05 23:33:30

标签: javascript jquery css3 twitter-bootstrap

我正在尝试下面的(在footer.php内)而没有这样的运气。

脚本:

$(document).ready(function(e) {
    $('.navbar-collapse').click(function(){
$(function() {

    var docHeight = $(document).height();

   $("body").append("<div id='overlay'></div>");

           $("#overlay")
            .height(docHeight)
            .css({
                 'opacity' : 0.7,
                 'position': 'fixed',
                 'top': 0,
                 'left': 0,
                 'background-color': 'black',
                 'width': '100%',
                 'z-index': 5000
              });
        }); 
    });
});

加价:

  <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
  </button>

当触发并显示导航切换时如何淡化或灰显背景或所有正文内容的任何建议 - 目标是让移动导航不是不透明而是其他所有内容都是不透明的。欢呼任何指针。 (Wordpress网站)例如。点击导航&gt;导航切换显示&gt;身体及其背后的所有内容和#000不透明度.7存在导航切换,一旦关闭,恢复到原始状态而没有不透明度。

1 个答案:

答案 0 :(得分:2)

一个好的开始就是将你的jquery改为:

$(function() {

  var docHeight = $(window).height();
  $('.navbar-collapse').click(function(){
     $("<div id='overlay'>")
      .height(docHeight)
      .css({
           'opacity' : 0.7,
           'position': 'fixed',
           'top': 0,
           'left': 0,
           'background-color': 'black',
           'width': '100%',
           'z-index': 5000
      }).appendTo('body');
  });

});

修改

DEMO

检查一下,它主要是css,但我认为这就是你想要的。

$(function() {
    $('.navbar-toggle').on('click', function() {
        $('body').toggleClass('menu-open');
    })
});

然后是css

body.menu-open:after {
    content: '';
    display: block;
    position: fixed;
    top: 0; bottom: 0; left: 0; right: 0;
    width: 100%;
    height: 100%;
    z-index: 1000;
    background: rgba(0,0,0,0.7);

}