2014-10-03 56 views
0

下面是簡單的html文件,它包含一個錨點,由具有特定樣式的塊元素覆蓋。應用樣式後,該鏈接僅在IE9中不可點擊。應用的樣式是使錨點靜音,但允許用戶點擊,如果需要。通過使用Jquery嘗試了不同的選項,但沒有解決。在html/css中對此有任何破解?只有在IE9中不能點擊錨標記

<!DOCTYPE html> 
<html> 
<head> 
    <title>Trial</title> 
    <style> 
    .overlay { 
     display: block; 
     position: absolute; 
     width: 100%; 
     height: 100%; 
     background-color: rgba(255,255,255,.4); 
     pointer-events: none; 
    }  
    </style> 
</head> 
<body> 
    <div class="overlay"></div> 
    <a href="http://www.google.com" target="_blank">ClickMe</a> 
</body> 
</html> 
+0

'指針的事件:無;'會空出點擊(指針)事件在IE9 – 2014-10-03 14:11:45

+0

是否當您刪除指針事件性質工作的呢? – Rob 2014-10-03 14:12:21

+0

@EricHolmes錯誤。 'pointer-events:none' [「指示鼠標事件」通過「元素,並指向該元素下方的任何內容。」](https://developer.mozilla.org/en-US/docs/ Web/CSS /指針事件) – Moob 2014-10-03 14:14:48

回答

0

CSS屬性pointer-events不< IE11(參見:http://caniuse.com/#feat=pointer-events)支持

作爲變通,你可以使用JavaScript來監聽在重疊的點擊,然後觸發點擊在下面的鏈接,如果它在你的光標下。喜歡的東西:

function simulateClick(el) { 
    var evt = document.createEvent("MouseEvents"); 
    evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); 
    el.dispatchEvent(evt); 
}; 
function isOnTopOf(evt, el) { 
    return evt.clientX >= el.offsetLeft && evt.clientX <= el.offsetLeft+el.offsetWidth && evt.clientY >= el.offsetTop && evt.clientY <= el.offsetTop+el.offsetHeight; 
};   

var overlay = document.getElementById("overlay"); 
var clicker = document.getElementById("clicker"); 

overlay.addEventListener('click', function(evt) { 
    if(isOnTopOf(evt, clicker)){ 
     simulateClick(clicker); 
    } 
}, false); 

http://jsfiddle.net/nxdm5x3u/

然而如果這樣做,你的整個原因是爲了使鏈接出現「靜音」你可以只使用CSS,使其半透明,不與理會覆蓋:用

a.muted { 
    opacity: 0.5; 
    filter: alpha(opacity=50); 
} 
+0

任何反饋都會反對嗎?這不正確嗎?它是無效的嗎?它不符合OP的要求嗎?任何能夠幫助我改進我的答案的東西?謝謝。 – Moob 2014-10-03 16:31:47

+0

@Teemu。你好。這是什麼CSS技巧?我沒有設置背景。我不知道IE做到了。你是否建議疊加層有一個背景:透明並通過其他方式製成半透明?如果是這樣,也許你應該把它作爲答案。 – Moob 2014-10-03 17:36:24

+0

看起來我混合了代碼,刪除了評論。 – Teemu 2014-10-03 17:40:36