【问题标题】:append overlay to content behind bootstrap 3 mobile nav toggle将叠加层附加到 bootstrap 3 mobile nav toggle 后面的内容
【发布时间】:2015-01-06 08:22:44
【问题描述】:

我正在尝试以下 (在 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 网站) 例如。单击导航 > 出现导航切换 > 正文和它后面和其他地方的所有内容都是 #000 opacity .7 而导航切换存在,一旦关闭,恢复到原始状态而没有不透明度。

【问题讨论】:

  • 我不确定我是否完全理解您的问题。你能用不同的方式来描述它,或者画出你希望每个州是什么样子的吗?
  • 一旦导航 div 切换为呈现,我想简单地使所有网站内容和元素变暗。因此,除当前导航外,其他所有内容都变暗或不透明度降低 1。是从现在开始的吗?
  • 你能把功能失调的代码放到 jsfiddle 里吗?

标签: javascript jquery css twitter-bootstrap


【解决方案1】:

一个好的开始是将您的 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);

}

【讨论】:

  • 感谢您的反馈并帮助我清理我的脚本。但是当导航出现时,此窗台并没有使导航后面的内容变暗。 (没用)
  • 正是我要找的……!唯一的问题是,在我的环境中,这个实现也会影响我的导航本身,这可能是因为 body 标签现在正在查看它。
猜你喜欢
  • 2014-03-26
  • 2017-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-14
  • 2015-01-16
  • 1970-01-01
相关资源
最近更新 更多