2016-07-24 94 views
1

我有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?我意识到,当我点击一个领域时,这个事件将会出现在领域本身,然后它会向容器中冒泡......我是否会错误地使用它?

+0

两个要求应该是可能的。你可以包括'css','javascript'试过了吗? – guest271314

+0

它实际上是一个非常复杂的聚合物元素...这是简化的版本! – Merc

回答

0

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

下面是代码:

// 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>