使用css屬性屏蔽鼠標事件的方法(鼠標點擊可穿透上層元素)
起源:前幾天測試發(fā)來一個需求,內(nèi)容要求看圖:

看到這個需求,我有點懵逼?,F(xiàn)在的情況是只有點擊日期內(nèi)容框空白區(qū)域時,才會響應(yīng)點擊事件顯示下拉日期菜單。

而這個icon圖標我是絕對定位到日期內(nèi)容框中的,它的圖層維度是高于日期內(nèi)容框的,點擊icon圖標時是不會響應(yīng)點擊事件的。我的第一個反應(yīng)是事件點擊穿透,但是該怎么實現(xiàn)?感覺觸碰到我一直忽視的知識盲區(qū)了。
懵逼的我一頓操作猛如虎,開啟面向谷歌編程大法…
事實證明科學上網(wǎng)很重要,谷歌精準 > 百度精準,再次吐槽百度的廣告…
為了解決被icon圖標遮蓋住的內(nèi)容框區(qū)域也能響應(yīng)點擊事件,可以使用poniter-events的css屬性來實現(xiàn)。
poniter-events屬性的值很多,但大部分和svg有關(guān)直接跳過,通用的屬性值有兩個none | auto。
auto:與 pointer-events 屬性未指定時的表現(xiàn)效果相同。none:該元素永遠不會成為鼠標事件的 target。但是,當其后代元素的 pointer-events 屬性指定其他值時,鼠標事件可以指向后代元素,在這種情況下,鼠標事件將在捕獲或冒泡階觸發(fā)父元素的事件偵聽器。
再關(guān)注下poniter-events的兼容情況:
桌面瀏覽器
IE:11+(IE6~IE10均不支持)Firefox:3.6+Chrome:4.0+Safari:6.0Opera:15.0
移動設(shè)備瀏覽器
iOS Safari:6.0Android Browser:2.1+Android Chrome:18.0+
看到這里,基本上就能解決我這次所遇到的問題了:

解決完問題,又有個新的疑惑冒了出來,除了讓鼠標點擊穿透外層遮層外,poniter-events還有什么常見的應(yīng)用場景么?
考慮到
none值的作用,應(yīng)該可以取消掉事件的點擊行為。比如:使a標簽鏈接不可點擊、避免按鈕多次點擊、表單重復(fù)提交等。除此以外,肯定還有很多其他應(yīng)用,可以通過屬性值去發(fā)掘。
總結(jié)
到此這篇關(guān)于使用css屬性屏蔽鼠標事件(鼠標點擊可穿透上層元素)的文章就介紹到這了,更多相關(guān)css 屬性屏蔽鼠標事件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!
相關(guān)文章

css屬性pointer-events實現(xiàn)點擊穿透的示例代碼
本文主要介紹了css屬性pointer-events實現(xiàn)點擊穿透的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編2023-07-19使用CSS的pointer-events屬性實現(xiàn)鼠標穿透效果的神奇技巧
當pointer-events的值設(shè)置為none之后,瀏覽器將不會獲得鼠標在當前位置的層上的點擊事件,而造成鼠標穿透的效果!下面就來為大家展開講解一下使用CSS的pointer-events屬性實現(xiàn)2016-06-28- 本文給大家分享CSS樣式穿透的幾種方法,結(jié)合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-10-30

