MDN 上介紹爲 CSS 屬性指定在什麼狀況下 (若是有) 某個特定的圖形元素能夠成爲鼠標事件的 target。
pointer-events 屬性值有:css
/* Keyword values */ pointer-events: auto; pointer-events: none; pointer-events: visiblePainted; /* SVG only */ pointer-events: visibleFill; /* SVG only */ pointer-events: visibleStroke; /* SVG only */ pointer-events: visible; /* SVG only */ pointer-events: painted; /* SVG only */ pointer-events: fill; /* SVG only */ pointer-events: stroke; /* SVG only */ pointer-events: all; /* SVG only */ /* Global values */ pointer-events: inherit; pointer-events: initial; pointer-events: unset;
其中默認屬性爲 auto。 當值爲none表示鼠標事件「穿透」該元素而且指定該元素「下面」的任何東西。html
拋卻只適用於svg的值,說一說 none 的使用場景。 mdn上的解釋不太好理解。 網友敘帝利 給出了一種使用場景。
我這裏還有一中使用場景是 當用div元素經過css樣式模擬按鈕時,能夠使用 pointer-event: none
模擬button禁止點擊。
好比:svg
// html <div class="point" onclick="alert('ok')提交申請</div> .point { width: 1.8rem; height: .44rem; margin: 0 auto; margin-top: 0.8rem; text-align: center; line-height: .44rem; border-radius: 22px; color: #fff; background-color: rgba(67,76,94,.43); pointer-events: none; }
此時該div的樣子,若是不設置pointer-events: none; 只是樣子不可點擊,點擊仍是會觸發事件響應的。 加上則不會響應click事件了。
spa