css屬性pointer-events
這絕對定位元素蓋住鏈接或添加某事件handle的元素后,那么該鏈接的默認行為(頁面跳轉)或元素事件將不會被觸發。
現在Firefox3.6+/Safari4+/Chrome支持一個稱為pointer-events的css屬性。使用該屬性可以決定是否能穿透絕對定位元素去觸發下面元素的某些行為。
如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
.overlay1 {
width:50px;
height:30px;
background:gold;
position:absolute;
top:5px;
left:65px;
opacity:0.5;
}
.overlay2 {
width:100px;
height:30px;
background:gold;
position:absolute;
top:60px;
left:25px;
opacity:0.5;
}
.pointer{
pointer-events:none;
}
</style>
</head>
<body>
<div id="a" class="overlay1"></div>
<div id="b" class="overlay2"></div>
<a href="http://www.baidu.com">Baidu</a>
<a href="http://www.baidu.com" "="">Baidu</a>
<br/><br/><br/>
<span onclick="alert(3);">SPAN element</span>
<p>
<input id="chx" type="checkbox">
<label for="chx">穿透點擊</label>
</p>
<script type="text/javascript">
window.onload = function(){
document.getElementById('chx').onclick = function(){
document.getElementById('a').className = "overlay1 " + ((this.checked)? "pointer" : "");
document.getElementById('b').className = "overlay2 " + ((this.checked)? "pointer" : "");
}
}
</script>
</body>
</html>