<i id='wMkW3'><tr id='wMkW3'><dt id='wMkW3'><q id='wMkW3'><span id='wMkW3'><b id='wMkW3'><form id='wMkW3'><ins id='wMkW3'></ins><ul id='wMkW3'></ul><sub id='wMkW3'></sub></form><legend id='wMkW3'></legend><bdo id='wMkW3'><pre id='wMkW3'><center id='wMkW3'></center></pre></bdo></b><th id='wMkW3'></th></span></q></dt></tr></i><div id='wMkW3'><tfoot id='wMkW3'></tfoot><dl id='wMkW3'><fieldset id='wMkW3'></fieldset></dl></div>
  1. <small id='wMkW3'></small><noframes id='wMkW3'>

    <tfoot id='wMkW3'></tfoot>

    1. <legend id='wMkW3'><style id='wMkW3'><dir id='wMkW3'><q id='wMkW3'></q></dir></style></legend>

      • <bdo id='wMkW3'></bdo><ul id='wMkW3'></ul>

      CSS/HTML 模态 - 使用 Escape 键/单击外部关闭

      时间:2023-06-21
        <bdo id='DHdcS'></bdo><ul id='DHdcS'></ul>
      • <tfoot id='DHdcS'></tfoot>

          <tbody id='DHdcS'></tbody>

            • <i id='DHdcS'><tr id='DHdcS'><dt id='DHdcS'><q id='DHdcS'><span id='DHdcS'><b id='DHdcS'><form id='DHdcS'><ins id='DHdcS'></ins><ul id='DHdcS'></ul><sub id='DHdcS'></sub></form><legend id='DHdcS'></legend><bdo id='DHdcS'><pre id='DHdcS'><center id='DHdcS'></center></pre></bdo></b><th id='DHdcS'></th></span></q></dt></tr></i><div id='DHdcS'><tfoot id='DHdcS'></tfoot><dl id='DHdcS'><fieldset id='DHdcS'></fieldset></dl></div>

            • <small id='DHdcS'></small><noframes id='DHdcS'>

              <legend id='DHdcS'><style id='DHdcS'><dir id='DHdcS'><q id='DHdcS'></q></dir></style></legend>
              1. 本文介绍了CSS/HTML 模态 - 使用 Escape 键/单击外部关闭的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                我有以下模态工作,

                http://jsfiddle.net/kumarmuthaliar/GG9Sa/1/

                在我的网站上.就易用性和功能而言,这正是我想要的.我遇到的唯一问题是当用户 A) 在模态窗口外单击或 B) 按 Escape 键时如何关闭模态.

                有什么建议吗?

                 <a href="#openModal">打开模态</a><div id="openModal" class="modalDialog">

                <a href="#close" title="关闭" class="close">X</a><h2>模态框</h2><p>这是一个示例模态框,可以使用 CSS3 的强大功能创建.</p><p>您可以在这里做很多事情,例如在您的网站加载时显示弹出广告,或者为用户创建登录/注册表单.</p></div></div>.modalDialog {位置:固定;字体系列:Arial、Helvetica、sans-serif;顶部:0;右:0;底部:0;左:0;背景:rgba(0, 0, 0, 0.8);z 指数:99999;不透明度:0;-webkit-transition:不透明度 400ms 缓入;-moz-transition:不透明度 400ms 缓入;过渡:不透明度 400ms 缓入;指针事件:无;}.modalDialog:目标{不透明度:1;指针事件:自动;}.modalDialog >分区 {宽度:400px;位置:相对;保证金:10% 自动;填充:5px 20px 13px 20px;边框半径:10px;背景:#fff;背景:-moz-线性渐变(#fff,#999);背景:-webkit-linear-gradient(#fff, #999);背景:-o-线性梯度(#fff,#999);}.关闭 {背景:#606061;颜色:#FFFFFF;行高:25px;位置:绝对;右:-12px;文本对齐:居中;顶部:-10px;宽度:24px;文字装饰:无;字体粗细:粗体;-webkit-border-radius:12px;-moz-边界半径:12px;边框半径:12px;-moz-box-shadow: 1px 1px 3px #000;-webkit-box-shadow: 1px 1px 3px #000;盒子阴影:1px 1px 3px #000;}.close:悬停{背景:#00d9ff;}

                解决方案

                为此,您需要一点 JavaScript.用一些注释检查代码.

                函数 modalClose() {if (location.hash == '#openModal') {location.hash = '';}}//处理 ESC 键(键码 27)document.addEventListener('keyup', function(e) {如果(e.keyCode == 27){模态关闭();}});var modal = document.querySelector('#openModal');//处理模态容器的点击modal.addEventListener('click', modalClose, false);//如果在模态内容正文中发生单击,则防止事件冒泡modal.children[0].addEventListener('click', function(e) {e.stopPropagation();}, 错误的);

                演示:http://jsfiddle.net/GG9Sa/264/

                请注意,关闭模式在技术上仅适用于 CSS/HTML,但是要处理 Escape 按键,您将需要 Javascript.

                I have the following modal working,

                http://jsfiddle.net/kumarmuthaliar/GG9Sa/1/

                on my site. It's exactly what I want in terms of ease of use, and function. The only issue I have is how to make the modal close when the user either A) Clicks outside the modal window, or B) Hits the Escape key.

                Any suggestions?

                    <a href="#openModal">Open Modal</a>
                
                    <div id="openModal" class="modalDialog">
                        <div>   <a href="#close" title="Close" class="close">X</a>
                
                                <h2>Modal Box</h2>
                
                            <p>This is a sample modal box that can be created using the powers of CSS3.</p>
                            <p>You could do a lot of things here like have a pop-up ad that shows when your website loads, or create a login/register form for users.</p>
                        </div>
                    </div>
                
                .modalDialog {
                    position: fixed;
                    font-family: Arial, Helvetica, sans-serif;
                    top: 0;
                    right: 0;
                    bottom: 0;
                    left: 0;
                    background: rgba(0, 0, 0, 0.8);
                    z-index: 99999;
                    opacity:0;
                    -webkit-transition: opacity 400ms ease-in;
                    -moz-transition: opacity 400ms ease-in;
                    transition: opacity 400ms ease-in;
                    pointer-events: none;
                }
                .modalDialog:target {
                    opacity:1;
                    pointer-events: auto;
                }
                .modalDialog > div {
                    width: 400px;
                    position: relative;
                    margin: 10% auto;
                    padding: 5px 20px 13px 20px;
                    border-radius: 10px;
                    background: #fff;
                    background: -moz-linear-gradient(#fff, #999);
                    background: -webkit-linear-gradient(#fff, #999);
                    background: -o-linear-gradient(#fff, #999);
                }
                .close {
                    background: #606061;
                    color: #FFFFFF;
                    line-height: 25px;
                    position: absolute;
                    right: -12px;
                    text-align: center;
                    top: -10px;
                    width: 24px;
                    text-decoration: none;
                    font-weight: bold;
                    -webkit-border-radius: 12px;
                    -moz-border-radius: 12px;
                    border-radius: 12px;
                    -moz-box-shadow: 1px 1px 3px #000;
                    -webkit-box-shadow: 1px 1px 3px #000;
                    box-shadow: 1px 1px 3px #000;
                }
                .close:hover {
                    background: #00d9ff;
                }
                

                解决方案

                For this you will need a little javascript. Check the code with some comments.

                function modalClose() {
                    if (location.hash == '#openModal') {
                        location.hash = '';
                    }
                }
                
                // Handle ESC key (key code 27)
                document.addEventListener('keyup', function(e) {
                    if (e.keyCode == 27) {
                        modalClose();
                    }
                });
                
                var modal = document.querySelector('#openModal');
                
                // Handle click on the modal container
                modal.addEventListener('click', modalClose, false);
                
                // Prevent event bubbling if click occurred within modal content body
                modal.children[0].addEventListener('click', function(e) {
                    e.stopPropagation();
                }, false);
                

                Demo: http://jsfiddle.net/GG9Sa/264/

                Note, that closing modal is technically possible with CSS/HTML only, however for handling Escape key press you will need Javascript.

                这篇关于CSS/HTML 模态 - 使用 Escape 键/单击外部关闭的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                上一篇:引导模式在 4 秒或用户点击后关闭 下一篇:如何在我的 introjs 中为下一步触发模态?

                相关文章

                1. <i id='iB9Pp'><tr id='iB9Pp'><dt id='iB9Pp'><q id='iB9Pp'><span id='iB9Pp'><b id='iB9Pp'><form id='iB9Pp'><ins id='iB9Pp'></ins><ul id='iB9Pp'></ul><sub id='iB9Pp'></sub></form><legend id='iB9Pp'></legend><bdo id='iB9Pp'><pre id='iB9Pp'><center id='iB9Pp'></center></pre></bdo></b><th id='iB9Pp'></th></span></q></dt></tr></i><div id='iB9Pp'><tfoot id='iB9Pp'></tfoot><dl id='iB9Pp'><fieldset id='iB9Pp'></fieldset></dl></div>

                  <small id='iB9Pp'></small><noframes id='iB9Pp'>

                  1. <legend id='iB9Pp'><style id='iB9Pp'><dir id='iB9Pp'><q id='iB9Pp'></q></dir></style></legend>
                  2. <tfoot id='iB9Pp'></tfoot>
                      <bdo id='iB9Pp'></bdo><ul id='iB9Pp'></ul>