显示叠加全屏div然后通过单击隐藏它

时间:2016-03-09 16:41:52

标签: javascript jquery html css

我是html / css / jquery语言的新手,所以如果我的问题看起来太明显,请原谅我。

我的目标是在单击div时显示全屏叠加div(此步骤实际上与切换功能一起使用)然后只需单击它就可以使同一个div消失。

我浏览了很多相关主题,但我似乎无法找到解决问题的方法。如何通过单击任意位置使全屏div消失(单击第一个div不是一个选项,因为它有意隐藏)?

到目前为止,这是我的代码:

JavaScript(jQuery):

$(function() {
    $("#bandeau").click(function() {
        $("#full_screen").toggle();
    }); 
});

HTML:

<div id="bandeau">content</div>

<div id="full_screen">
    <div class="info_visible" id="about">content</div>
</div>

CSS:

#bandeau {
    background-color: black;
    overflow: hidden;
    cursor: crosshair;
    width: 100%;
    height: 57px;
    z-index: 1000;
    position: fixed;
}

#full_screen {
    background-color: black;
    overflow: hidden;
    cursor: crosshair;
    width: 100%;
    height: 100%;
    z-index: 1000;
    position: fixed;
    display: none;
    margin: 0px;
    padding: 0px;
}

.info_visible {
    width: 100%;
    height: auto;
    color: white;
    padding-top: 10px;
    padding-bottom: 20px;
    padding-left: 30px;
    position: fixed;
}

4 个答案:

答案 0 :(得分:0)

这将打开或关闭全屏

https://jsfiddle.net/42atLz1g/1/

$("#bandeau, #full_screen").click(function(){
    $("#full_screen").toggle();
});

答案 1 :(得分:0)

下面是一个简单易用的方法,只需一个命令和完整的探索。欢迎并欢迎网站开发!

  

注意: 滚动到答案结尾以查看有用链接的简短列表

//  this is simply jQuery shorthand for document.ready = function ...
$(function(){
    //  this is how to dynamically assign events
    //  why is this important? let's say, in the future,
    //  you decide to add elements after the page is loaded,
    //  this allows the NEW elements to still use the same events you've assigned
    $(document)
        //  .on and .off are as simple as they appear, 
        //  on adds an event to a group of elements and off removes
        //  as you'll notice, I assign just one method to both elements
        //  the reason is this move is extremely simple
        //  all you need is to have one element hide or show, based on 
        //  clicking one of the divs
        .on('click', '#bandeau, #full_screen', function(e) {
            //  .toggle accepts a booleen argument
            //  if true = show, if false = hide
            //  thus i simply test the id name within the parameter!
            $('#full_screen').toggle(this.id == 'bandeau');
         })
});
#bandeau{
    background-color: black;
    color: green;
    overflow: hidden;
    cursor: crosshair;
    width:100%;
    height: 57px;
    z-index: 1000;
    position: fixed;
}

#full_screen {
    background-color: black;
    overflow: hidden;
    cursor: crosshair;
    width: 100%;
    height: 100%;
    z-index: 1000;
    position: fixed;
    display: none;
    margin: 0px;
    padding: 0px;
}

.info_visible {
    width:100%;
    height: auto;
    color:white;
    padding-top: 10px;
    padding-bottom: 20px;
    padding-left: 30px;
    position: fixed;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="bandeau">content</div>
<div id="full_screen">
    <div class="info_visible" id="about">tnetnoc</div>
</div>

答案 2 :(得分:0)

带有秘密复选框的纯CSS解决方案:

html {
  width: 100%;
  height: 100%;  
  background: lavender;
  text-align: center;
  font-family: arial, sans-serif;
}

input { 
  display: none;
}

#target { 
  display: none;
}

#click:checked ~ label > #target {
  position: fixed;
  top: 0;
  left: 0;
  display: inline-block;
  height: 100%;
  width: 100%;
  background: url('http://i.imgur.com/bv80Nb7.png');
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

.item {
  position: fixed;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  left: 0;
  right: 0;
  margin: auto;
  cursor: pointer;  
  user-select: none;
  -webkit-user-select: none;  
}

#warning {
  position: fixed;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  left: 0;
  right: 0;
  margin: auto;
}
<input type="checkbox" id="click" name="click" value="click" />

<label for="click">
<p class="item"><b>CLICK HERE</b></p>
<div id=target><h1 id=warning>FULLSCREEN CONTENT</h1></div>  
</label>

答案 3 :(得分:-1)

尝试用这个

替换你的jQuery代码
$(function(){

        $("#bandeau").click(function(){

            $("#full_screen").show();

        });

        $("#full_screen").click(function(){

            $(this).hide();

        });



    });