pointer-events,一個神奇的css屬性

2021-03-02 廢柴美少女

搞前端的朋友們應該聽說過這個屬性吧。每年聖誕節的時候,許多網頁上都會掛出一個雪花飄落的特效增加一些節日氣氛。有一些是用flash實現的,也有用HTML+js實現的。當時就很好奇為何在頁面z軸最上層增加了一個層卻完全不會影響下面元素的任何事件響應。簡直是前端黑科技。後來看了大神的解釋,原來只用了一個的css屬性pointer-events就可以搞定一切了。

看上去確實很神奇,以為會是事件冒泡代理轉發之類的很難懂的概念。實際上超級簡單,對某一個元素比如div採用div{pointer-events:none}即可讓這個HTML元素(包括它的所有子孫元素)失去所有的事件響應。滑鼠焦點會直接無視它,click、mouseover等所有事件會穿透它到達它的下一級元素。這個屬性看起來似乎很有用,讓我一直都想怎樣在項目中能有點實際的意義。直到這兩天做一個數據可視化的項目,終於找到了一個用武之地。

如圖,頁面z軸上分兩層,底層是基於百度地圖和Echarts做的全屏大地圖,上層container容器也是全屏的,是用Vue+webSocket做的實時圖表table和信息展示文字及header部分,看著簡直完美。跑起來測試,媽蛋,地圖無法用滾輪縮放移動了,Echart的組件也無法點擊交互了。原因也很簡單,上層的container層把地圖『擋住了』,這種時候用pointer-events就很有用了,直接pointer-events:none搞定。但是這樣一來table因為繼承的關係,裡面的交互事件也用不了了(本來每行點擊可以彈一個dialog展示詳情的),這時候可以針對table單獨用一個pointer-events:auto事件就又回來了。

        這就是我目前遇到了使用這個屬性最好的使用場景,那就是用來做一些特效類的交互層級比較多的頁面,當然如果你腦洞開得夠大,用它動態綁定一些元素,感覺可以玩出一些黑魔法。如果不知道這個屬性的話,暫時我還真沒想到其它的方案解決這個難題,歡迎談談你的想法啊。

        另外,因為是css3屬性,不支持IE直到9!



ps:早睡早起,常做運動,多與異性交朋友~

相關焦點

  • css3中pointer-events屬性
    css屬性指定在什麼情況下(如果有)某個特定的圖形元素可以成為滑鼠事件的target(包括滑鼠的樣式)/* Keyword values */pointer-events: auto;pointer-events: none;
  • 5種你未必知道的JavaScript和CSS交互的方法
    我們的網頁中都有.js文件和.css文 件,但這並不意味著CSS和js是獨立不能交互的。下面要講的這五種JavaScript和CSS共同合作的方法你也許未必知道!用JavaScript獲取偽元素(pseudo-element)屬性大家都知道如何通過一個元素的style屬性獲取它的CSS樣式值,但能獲取偽元素(pseudo-element)的屬性值嗎?
  • HTML、CSS從零開始 | CSS3屬性
    文本陰影屬性文本換行屬性用來標明是否允許瀏覽器在單詞內進行斷句,這是為了防止當一個字符串太長而找不到它的自然斷句點時產生溢出現象。圖片邊框border-image 屬性是一個簡寫屬性,用於設置以下屬性:border-image-source 用在邊框的圖片的路徑;border-image-slice 圖片邊框向內偏移(不加單位);
  • 如何使用神奇的css中的focus-within
    ❝作者:晴梔Sunset❞❝CSS的focus-within❞神奇的偽類選擇器focus-within❝:focus-within是一個CSS 偽類 ,表示一個元素獲得焦點,或,該元素的後代元素獲得焦點。換句話說,元素自身或者它的某個後代匹配 :focus 偽類。(shadow DOM 樹中的後代也包括在內)❞❝該選擇器非常實用。
  • 如何用純css打造類materialUI的按鈕點擊動畫並封裝成react組件
    ,上面的css動畫的實現可以藉助cubic-bezier這個在線工具,他可以生成各種不同形式的貝塞爾曲線.工具長這樣:2.組件設計思路僅僅用上述代碼雖然可以實現一個按鈕點擊的動畫效果,但是並不通用, 也不符合作為一個經驗豐富的程式設計師的風格,所以接下來我們要一步步把它封裝成一個通用的按鈕組件,讓它無所不用.
  • 20 個常用的 CSS 技巧
    頁面頂部陰影下面這個簡單的 css3 代碼片段可以給網頁加上漂亮的頂部陰影效果:body:before {          content: "";          position: fixed;          top: -10px;          left: 0;          width
  • 有趣的css屬性content
    ,今天就來好好的講講這個有趣的css屬性。在書中發現了一個利用此特性的小慄子🌰,感覺非常好用,這裡寫出來給大家參考一下。下面實現了一個動態loading加載的效果。並且在低版本瀏覽器下雖然支持不了animation屬性,但是它也能良好的展示靜態效果。open-quote、close-quote關於這個屬性,算是一個好用卻又不實用的屬性吧,它本身良好的特性可以完成平常的許多業務問題,但是卻又顯得沒有那麼必要。
  • CSS filter有哪些神奇用途
    filter 屬性將模糊或顏色偏移等圖形效果應用於元素形成濾鏡,濾鏡通常用於調整圖像,背景和邊框的渲染。每個函數需要一個參數,如果參數無效,則濾鏡不會生效。以下是一個簡單的 filter 方法調節器,可以調整每個方法的值,同時實時展示圖片的濾鏡效果。如下圖所示。
  • 前端常用的CSS代碼
    position:relative;}最外層容器 > 子元素 > 父元素 > 子元素{ width:100%; height:100%; position:absolute; top:0; left:0;}57、利用pointer-events
  • css font-family屬性設置元素的字體
    font-family屬性定義及用法在css中,font-family屬性是使用來規定元素的字體系列,把多個字體名稱作為一個「回退」系統來保存,如果瀏覽器不支持第一個字體,則會嘗試下一個。也就是說,font-family 屬性的值是用於某個元素的字體族名稱或/及類族名稱的一個優先表,瀏覽器會使用它可識別的第一個值。有兩種類型的字體系列名稱:指定的系列名稱:具體字體的名稱,比如:"times"、"courier"、"arial"。
  • css3必須了解的知識 css中常見的樣式屬性和值
    繼續上一篇文章的繼續了解css的基礎知識 全棧學習筆記,不同平臺不同的我!css中常見的樣式屬性和值字體與顏色背景屬性文本屬性邊框屬性內外邊距滑鼠光標屬性列表樣式定位屬性浮動和清除浮動滾動條樣式顯示和隱藏字體與顏色font-family:微軟雅黑;/*字體名稱(類型):微軟雅黑,黑體,楷體,宋體*/font-size: 20px;/*字體大小*/font-weight: 600;/*字體加粗*/font-style: italic
  • CSS Background 屬性完全指南
    要測試屬性及其值,請遵循以下步驟:創建一個名為 'BACKGROUND-PROJECT' 的文件夾並在 VS Code 中打開創建 index.html 和 style.css 文件在 VS Code 中安裝 'live server'HTML在 HTML文件的 body
  • css3 box-sizing屬性筆記
    box-sizing屬性定義及用法box-sizing屬性是css3中新增的屬性,允許你以某種方式定義某些元素,以適應指定區域(假如您需要並排放置兩個帶邊框的框,可通過將 box-sizing屬性設置為"border-box",這可令瀏覽器呈現出帶有指定寬度和高度的框,並把邊框和內邊距放入框中
  • 使用HTML DIV+CSS樣式+JavaScript實現自定義個性化的模態窗口
    一般用於給用戶一個提示信息,必須關閉模態窗口之後才可以進行其它的操作。圖1圖1就是一個使用DIV+CSS自定義的一個模態窗口,其優點是個性化強,根據系統要求完全自行設計,而系統窗口是無法做到的。position屬性可以設置不同的定位方式,任何元素都可以定位。絕對定位:是指針對瀏覽器的窗口位置對模態窗口進行定位,固定在一個位置,不會被其它的元素影響。相對定位:是指模態窗口的位置相對於其它元素而進行定位,會受到其它元素的影響。
  • 一個在線css三角形生成器
    接下來介紹的一款工具——css三角形生成器也是因為之前想要解放設計師的生產力, 自己又懶得切圖或者寫css代碼, 所以想來想去還是自己做一個能自動生成css三角形代碼的工具吧.1.css畫三角形的原理其實筆者在之前的文章中也分享過3種以上的使用css實現三角形的方案, 這裡筆者介紹一個通用的方法, 也就是用border來實現三角形, 我們先來看下面的圖示
  • 20 個 CSS 高級技巧匯總
    逗號分隔的列表讓HTML列表項看上去像一個真正的,用逗號分隔的列表:ul > li:not(:last-child)::after {  content: ",";}對最後一個列表項使用 :not() 偽類。7.
  • 49個常用的CSS代碼片段,建議整理收藏
    屬性與值的說明如下:text-shadow: [X-offset,Y-offset,Blur,Color];X-offset:指陰影居於字體水平偏移的位置。Y-offset:指陰影居於字體垂直偏移的位置。Blur:指陰影的模糊值。
  • 【每日CSS】巧用 -webkit-box-reflect 實現光影按鈕
    今天帶大家感受一下兩個美妙的屬性-webkit-box-reflect是一個非常有意思的屬性,它讓 CSS 有能力像鏡子一樣,反射我們元素原本繪製的內容conic-gradient ,表示圓錐漸變,是除線性漸變、徑向漸變的另外一種漸變方式,給 CSS 世界帶來了更多可能
  • 【CSS】1062- 49 個常用 CSS 樣式清單整理
    form 標籤套起來,並且設置 action 屬性,這樣寫完之後輸入法的右下角就會自動變成搜索,同時,使用了 search 類型後,搜索框上會默認自帶刪除按鈕。 pointer-events: none; cursor: default;}20、禁止用戶選擇.wrap {  -webkit-touch-callout: none;  -webkit-user-select: none;  -khtml-user-select