简体   繁体   English

如何关闭灯箱和背景叠加?

[英]How to close lightbox and background overlay?

I am currently adding a lightbox to a clients web page and I've managed to do so, however when I close the lightbox, the overlay in the background doesn't go away and stay sin position. 我目前正在向客户网页添加灯箱,并且设法做到了这一点,但是当我关闭灯箱时,背景中的叠加层不会消失并保持原样。 I have to refresh the page for it to go away. 我必须刷新页面才能消失。

How can I allow the overlay to also close out when I click X Close to close the popup? 当我单击X关闭以关闭弹出窗口时,如何允许覆盖层也关闭?

Here is the area where I think the issue is... 我认为这是问题所在。

 <button id="LearnMoreBtn">PLEASE READ OUR PARTY POLICIES</button> <div id="overlay"></div> <div id="popup"> <a href="javascript:void(0)" onclick="document.getElementById('popup').style.display='none';">X Close</a> 

Here is the entire code for the button/lightbox/ect.. 这是按钮/灯箱/ ect。的完整代码。

  <style> button { border-radius: 19px; background-color: limegreen; color: white; font-family: "Comic-sans", cursive, Sans-serif; margin-left: 33%; } #popup a { text-align: right; text-decoration: none; color: black; } #overlay { display:none; position:fixed; left:0px; top:0px; width:100%; height:100%; background:#000; opacity:0.5; z-index:99999; } h5 { text-align: center; } #popup { display:none; position:absolute; width:1000px; height:850px; margin-left: 10%; background:#FFFFFF; border:2px solid #000; z-index:100000; color: black; } </style> <button id="LearnMoreBtn">PLEASE READ OUR PARTY POLICIES</button> <div id="overlay"></div> <div id="popup"> <a href="javascript:void(0)" onclick="document.getElementById('popup').style.display='none';">X Close</a> <b><h5> Please read through our party policies! </h5></b> <br> <b>Party Schedule:</b> The birthday party program will last two hours and include: <br> <ul> <li>30-minute welcome activity and building orientation </li> <li>60-minute hands-on program and project </li> <li>30-minute period for birthday celebration </li> <br> </ul> <b>The Museum staff who facilitate the party are flexible and will work with you to adjust the schedule for latecomers and other needs. The Museum provides: </b> <br> <ul> <li>A Museum teacher to lead the party. </li> <li>Supplies for each child to create a hands-on project (excluding the Block Party and Brick City Party). </li> <li>Exclusive use of a classroom starting 30 minutes before the party start time and ending 15 minutes after the party end time. </li> <li>The Museum will provide a safety lighter to light the birthday candles. <li>Please do not bring matches. </li> <li>One 5' round table and chairs will be provided to seat every 6-7 children. <li>One additional table will be provided for refreshments. </li> <li>Party favors for each child. If you would like to provide goody bags or any additional favors, you can bring those and stuff them with the Museum-provided items before the party begins.</li> <li> Museum t-shirt for the birthday child.</li> </ul> <br> </div> <script> window.onload = function() { document.getElementById("LearnMoreBtn").onclick = function(){ var overlay = document.getElementById("overlay"); var popup = document.getElementById("popup"); overlay.style.display = "block"; popup.style.display = "block"; }; }; </script> 

You're just missing the behavior to close the overlay . 您只是缺少关闭overlay的行为。 In the code you use to display the overlay and popup , you update the display for both, but not on the close button. 在用于显示overlaypopup的代码中,您将同时更新两者的显示,但不会更新关闭按钮。

I just added the event listener with the original code and connected it to the close-button . 我只是用原始代码添加了事件监听器,并将其连接到close-button See below: 见下文:

  <style> button { border-radius: 19px; background-color: limegreen; color: white; font-family: "Comic-sans", cursive, Sans-serif; margin-left: 33%; } #popup a { text-align: right; text-decoration: none; color: black; } #overlay { display:none; position:fixed; left:0px; top:0px; width:100%; height:100%; background:#000; opacity:0.5; z-index:99999; } h5 { text-align: center; } #popup { display:none; position:absolute; width:1000px; height:850px; margin-left: 10%; background:#FFFFFF; border:2px solid #000; z-index:100000; color: black; } </style> <button id="LearnMoreBtn">PLEASE READ OUR PARTY POLICIES</button> <div id="overlay"></div> <div id="popup"> <a id="close-button" href="javascript:void(0)">X Close</a> <b><h5> Please read through our party policies! </h5></b> <br> <b>Party Schedule:</b> The birthday party program will last two hours and include: <br> <ul> <li>30-minute welcome activity and building orientation </li> <li>60-minute hands-on program and project </li> <li>30-minute period for birthday celebration </li> <br> </ul> <b>The Museum staff who facilitate the party are flexible and will work with you to adjust the schedule for latecomers and other needs. The Museum provides: </b> <br> <ul> <li>A Museum teacher to lead the party. </li> <li>Supplies for each child to create a hands-on project (excluding the Block Party and Brick City Party). </li> <li>Exclusive use of a classroom starting 30 minutes before the party start time and ending 15 minutes after the party end time. </li> <li>The Museum will provide a safety lighter to light the birthday candles. <li>Please do not bring matches. </li> <li>One 5' round table and chairs will be provided to seat every 6-7 children. <li>One additional table will be provided for refreshments. </li> <li>Party favors for each child. If you would like to provide goody bags or any additional favors, you can bring those and stuff them with the Museum-provided items before the party begins.</li> <li> Museum t-shirt for the birthday child.</li> </ul> <br> </div> <script> window.onload = function() { document.getElementById("LearnMoreBtn").onclick = function(){ var overlay = document.getElementById("overlay"); var popup = document.getElementById("popup"); overlay.style.display = "block"; popup.style.display = "block"; }; document.getElementById("close-button").onclick = function() { var overlay = document.getElementById("overlay"); var popup = document.getElementById("popup"); overlay.style.display = "none"; popup.style.display = "none"; }; }; </script> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM