当前位置: 首页 > 知识库问答 >
问题:

弹出窗口不会关闭

朱宏爽
2023-03-14

有人能帮我吗?

无论我试了什么弹出窗口都不能关闭。。。

https://codepen.io/mrthiemann/pen/bgpnnex

<script>
//appends an "active" class to .popup and .popup-content when the "Open" button is clicked
$(".open").on("click", function() {
  $(".popup-overlay, .popup-content, .login-overlay, .login-overlay--content").addClass("active");
});

//removes the "active" class to .popup and .popup-content when the "Close" button is clicked 
$(".close, .popup-overlay, .login-overlay").on("click", function() {
  $(".popup-overlay, .popup-content, .login-overlay--content").removeClass("active");
});
</script>

我在codepen.io上集成了css代码。。。而我的帖子主要是代码。。。。

弹出窗口总是在打开页面时显示。 所以只针对那些没有注册的人。 我将能够安装这个循环之后。

我找到的大多数教程都与打开和关闭弹出窗口的按钮有关。 但对我来说它是永久开放的,应该“只能”关闭。

   
<div class="container">
<div class="login-overlay">
    <!-- Trigger the modal with a button -->
  <!-- NOTHING !!! -->
  <!-- the window is always shown when the page is opened -->


  <!-- Modal -->
  <div class="modal fade" id="myModal" role="dialog">
    <div class="modal-dialog">
    
      <!-- Modal content-->
      <div class="modal-content">
      <div class="login-overlay--content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal">&times;</button>
          <h3 class="modal-title">Willkommen auf dein-3d.com!!!</h3>
          <br>
        .....
        </div>
        <div class="modal-body">
          <ul class="list">
                                        <li>
                                        
                                      etc...
                                   
                                        </li>
                                    </ul>   
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-default"><a href="/wp-login.php">Einloggen</button>
          <button type="button" class="btn btn-default"><a href="/wp-login.php?action=register">Registrieren</button>
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
      </div>
      
      </div>
    </div>
  </div>
  
</div>
</div>


共有1个答案

唐利
2023-03-14

这里有几个问题:

  1. 没有对jQuery库的引用
  2. 您省略了一个.login-overlay.active类,并且没有将.login-overlay的默认值设置为hidding
  3. 要确保模式作为默认模式对用户可见,请将active类添加到元素的HTML

看起来你复制了一个例子,而不一定知道每个部分是如何工作的。 我在下面对工作代码进行了注释,以指出所做更改的位置。

null

//appends an "active" class to .popup and .popup-content when the "Open" button is clicked
$(".open").on("click", function() {
  $(".popup-overlay, .popup-content, .login-overlay").addClass("active");
});

//removes the "active" class to .popup and .popup-content when the "Close" button is clicked 
$(".close, .popup-overlay, .login-overlay").on("click", function() {
  $(".popup-overlay, .popup-content, .login-overlay").removeClass("active");
});
.login-overlay {
  /* DEFAULT HIDDEN - LIKE THE EXAMPLE, PRESUMABLY */
  visibility: hidden;
  position: absolute;
  flex-direction: row;
  z-index: 1;
  position: absolute;
  top: 100px;
  right: 100px;
  background-color: white;
  width: 286px;
  height: 266px;
  padding: 20px;
  box-shadow: 0px 0px 14px 0px rgba(0, 0, 0, 0.3);
  .opacity: 0;
  animation-name: fadein;
  animation-duration: 3s;
  animation-fill-mode: forwards;
}

  /* COPIED FROM EXAMPLE MODAL - LIKE THE EXAMPLE, PRESUMABLY */
.login-overlay.active {
  /*displays pop-up when "active" class is present*/
  visibility: visible;
}

.login-overlay::before {
  top: -9px;
  left: 200px;
  content: " ";
  border-color: blue;
  transform: rotate(-45deg);
  border-width: 8px;
  box-shadow: 2px -2px 3px 0px rgba(0, 0, 0, 0.15);
  content: " . ";
  position: absolute;
  width: 18px;
  height: 18px;
  color: white;
  background-color: white;
}

.login-overlay--content {
  font-size: 12px;
}

login-overlay.active {
  /*displays pop-up when "active" class is present*/
  visibility: visible;
  text-align: center;
}


/* Modal Content/Box */

modal-content {
  border: 1px solid #888;
}


/* The Close Button */

.close {
  color: #aaa;
  float: right;
  font-size: 28px;
  font-weight: bold;
}

.close:hover,
.close:focus {
  color: black;
  text-decoration: none;
  cursor: pointer;
}

popup-overlay {
  /*Hides pop-up when there is no "active" class*/
  visibility: hidden;
  position: absolute;
  background: #ffffff;
  border: 3px solid #666666;
  width: 50%;
  height: 50%;
  left: 25%;
}

popup-overlay.active {
  /*displays pop-up when "active" class is present*/
  visibility: visible;
  text-align: center;
}

popup-content {
  /*Hides pop-up content when there is no "active" class */
  visibility: hidden;
}

popup-content.active {
  /*Shows pop-up content when "active" class is present */
  visibility: visible;
}
<!-- ~~~~~ JQUERY CDN - JQUERY WON'T WORK WITHOUT THIS ~~~~~  -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="container">
  <div class="login-overlay active"> <!-- ~~~~~ ADDED ACTIVE CLASS ~~~~~  -->
    <!-- Trigger the modal with a button -->
    <!-- NOTHING !!! -->
    <!-- the window is always shown when the page is opened -->


    <!-- Modal -->
    <div class="modal fade" id="myModal" role="dialog">
      <div class="modal-dialog">

        <!-- Modal content-->
        <div class="modal-content">
          <div class="login-overlay--content">
            <div class="modal-header">
              <button type="button" class="close btn btn-default" data-dismiss="modal">&times;</button>
              <h3 class="modal-title">Willkommen auf dein-3d.com!!!</h3>
              <br>
              <p>Melde dich an, oder erstelle ein neues Konto, damit du:</p>
            </div>
            <div class="modal-body">
              <ul class="list">
                <li>
                  <i class="icon icon-checkmark-green"></i>
                  <span>Aktiv an der Community teilnehmen kannst</span>
                </li>
                <li>
                  <i class="icon icon-checkmark-green"></i>
                  <span>Produkte auf dem Marktplatz erwerben kannst</span>
                </li>
                <li>
                  <i class="icon icon-checkmark-green"></i>
                  <span>Für dich interessante Angebote siehst</span>
                </li>
              </ul>
            </div>
            <div class="modal-footer">
              <button type="button" class="btn btn-default"><a href="/wp-login.php">Einloggen</button>
              <button type="button" class="btn btn-default"><a href="/wp-login.php?action=register">Registrieren</button>
              <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            </div>
          </div>

        </div>
      </div>
    </div>

  </div>
</div>
 类似资料:
  • 我有这段代码显示了一个按钮谁显示一个弹出窗口,我希望用户能够关闭弹出窗口点击它的外部时,它是打开的。

  • 所以我只是想知道是否有人知道在JavaFX 8中关闭弹出窗口的正确方法。例如,如果我的弹出窗口上有一个取消按钮,当按下取消按钮时,我应该使用什么方法来摆脱弹出窗口?我目前只是使用隐藏()方法。这让我有点害怕,因为我不确定弹出窗口是否在后台某处徘徊并且仍然需要关闭。但是,当我在这里查看java文档时,我没有看到任何关闭()方法,我也没有在我的IDE自动完成中看到关闭()方法。不过,我确实在文档中看到

  • 问题内容: 我通过window.open打开了一个弹出窗口。使用JavaScript打开,我想在关闭此弹出窗口时刷新父页面。(onclose事件?)我该怎么办? 问题答案: 您可以使用“ window.opener”访问父窗口,因此,在子窗口中编写如下内容:

  • 问题内容: 我想使用Firefox浏览器,使用RSelenium从网站下载文件。我正确地完成了所有操作(导航,选择正确的元素并写下我想要的内容);现在,我单击“下载”按钮,然后打开一个Firefox弹出窗口,并询问我是否要下载文件或“用…打开”。 不幸的是,由于隐私限制,我无法编写示例。 我的问题是:如何在需要时切换到弹出窗口/警报并单击“确定”? 我尝试了以下方法,但均未成功: 我也试过了 但是

  • Popup 是一种可以包含任何Html内容的弹出窗口,从App的主内容区域上弹出。 Popup 和其他所有的遮罩图层一样,是所谓的“临时视图”的一部分。 Popup 布局 Popup 布局相当简单. 你所需要做的就是将放到 body 里正确的位置上: <div class="modal modal-no-buttons"> ... <div class="popup"> An

  • 问题内容: 因此,我一直在用Qt为我的Python应用程序创建GUI。我现在遇到的情况是,按下按钮后,将执行适当的推迟操作,我们执行一些任务,然后需要打开一个单独的窗口,其中包含一两个东西。但是我似乎无法弄清楚如何创建这个新的单独窗口。谁能给我一个如何创建一个例子吗? 问题答案: 一个使您抓狂的常见错误是忘记将创建的弹出窗口的句柄存储在将保持活动状态的python变量中(例如,存储在主窗口的数据成

  • 我有一个tkinter GUI python代码,它为我的代码创建了一个GUI接口,在稍后的代码中使用了声音工具包(它也使用Tk,并使用root=Tk()创建了一个实例)。因为,以前GUI应用程序的主循环已经在运行,所以每当调用snack函数时,就会弹出一个新的空默认tk窗口。由于这种情况经常发生,所以当代码执行时,屏幕上有数百个空tk窗口。我曾尝试使用多种方法关闭它们。毁灭,根。撤消、WM_删除

  • 问题内容: 我已经开始了angularjs项目,我想实现fancybox。 为此,我在解决方案中包含了jQuery和fancybox插件。我试图在下面的fancybox窗口中显示的代码中打开模板。 视图 控制者 还有 popup / add.html Fancybox成功打开了一个包含模板的窗口,但是该表达式尚未求值。谁能帮忙吗? 问题答案: 我已经为fancybox创建了指令