javascript - 包含 DIV 到 "cover"包含的元素

标签 javascript html css ajax

我有像这样的 HTML:

<div id="cover" on-tap="_overlayTapped" class$="{{status}}">
  <form method="POST" action="/some/action">
    <input required id="name" name="name" label="Your name"></input>
    <input required id="surname" name="surname" label="Your name"></input>
    <button type="submit">Click!</button>
  </form>
</div>

我想添加 Javascript 或样式,以便 div #cover 将:

1) 模糊其内容。例如,当表单加载(通过 AJAX)一些默认值时,我希望所包含的内容“模糊”(我猜是 #container 的不透明度),但我也不希望人们能够点击字段。

2) 将 #cover 转换为“模式”,这意味着单击它将有效地等待单击以尝试重新加载数据(如果调用失败)

使用“包含”div 来做到这一点实际上是不可能的吗?我意识到,当我单击某个字段时,事件将发生在该字段本身上,然后它会冒泡到容器中...我是否理解错误了?

最佳答案

我不太确定你想要做什么,但我为你做了这个,请检查这是否是你想要的。点击按钮打开模态框,会出现框,其他内容会变得模糊。

这是代码:

// Get the modal
var modal = document.getElementById('myModal');

// Get the button that opens the modal
var btn = document.getElementById("myBtn");

// Get the <span> element that closes the modal
var span = document.getElementsByClassName("close")[0];

// When the user clicks the button, open the modal
btn.onclick = function() {
    modal.style.display = "block";
document.getElementById("blurit").style.filter = "blur(4px)";
    document.getElementById("blurit").style.WebkitFilter = "blur(4px)";
}

// When the user clicks on <span> (x), close the modal
span.onclick = function() {
    modal.style.display = "none";
document.getElementById("blurit").style.filter = "blur(0)";
    document.getElementById("blurit").style.WebkitFilter = "blur(0)";
}

// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
    if (event.target == modal) {
        modal.style.display = "none";
document.getElementById("blurit").style.filter = "blur(0)";
    document.getElementById("blurit").style.WebkitFilter = "blur(0)";
    }
}
/* The Modal (background) */
.modal {
    display: none; /* Hidden by default */
    position: fixed; /* Stay in place */
    z-index: 1; /* Sit on top */
    padding-top: 100px; /* Location of the box */
    left: 0;
    top: 0;
    width: 100%; /* Full width */
    height: 100%; /* Full height */
    overflow: auto; /* Enable scroll if needed */
    background-color: rgb(0,0,0); /* Fallback color */
    background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
}

/* Modal Content */
.modal-content {
    background-color: #fefefe;
    margin: auto;
    padding: 20px;
    border: 1px solid #888;
    width: 80%;
}

/* The Close Button */
.close {
    color: #aaaaaa;
    float: right;
    font-size: 28px;
    font-weight: bold;
}

.close:hover,
.close:focus {
    color: #000;
    text-decoration: none;
    cursor: pointer;
}
<div id="blurit">
<p>Test it</p>
<img src="https://static.pexels.com/photos/909/flowers-garden-colorful-colourful.jpg" alt="Pineapple" width="500" height="300"><br><br>
<button onclick="myFunction()" id="myBtn">Try it</button>
</div>
<div id="myModal" class="modal">

  <!-- Modal content -->
  <div class="modal-content">
    <span class="close">×</span>
    <p>Some text in the Modal..</p>
  </div>

</div>

关于javascript - 包含 DIV 到 "cover"包含的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38549395/

相关文章:

html - 固定粘性标题

javascript - Chrome 扩展的 HTML5 sessionStorage 或 chrome.storage?

javascript - 当导航栏固定时添加边距

javascript - 使输入的初始值在单击时消失并返回模糊状态

javascript - 如何将所有按顺序排列的元素分组为由分隔符类分隔的同一类?

css - 为什么有多余的 padding-bottom 和/或 margin-bottom?

html - 使用 Bootstrap 3.0 的网格布局

javascript - Moment JS 解析奇怪的行为

java - 如何使用 Jsoup 解析此 HTML

html - Safari 中的元素未正确对齐