91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

HTML標簽偽元素綁定事件的方式有哪些

發布時間:2020-12-02 11:14:38 來源:億速云 閱讀:173 作者:小新 欄目:web開發

這篇文章給大家分享的是有關HTML標簽偽元素綁定事件的方式有哪些的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

最近項目中遇到點擊一個圖標執行某些操作的功能,本來很簡單就能實現,但圖標卻是 ::after 偽元素實現的,在印象中好像不能直接對偽元素進行 dom 操作,可項目中有所有頁面都是通過偽元素來展示圖標的,將所有頁面中圖標改成 DOM 元素也不太可行。
在網上查了下,大部分都是介紹通過 event 對象獲取鼠標指針坐標的方式判斷點擊的區域是否為偽元素所在的區域,但這很煩麻煩。

下面整理出幾種簡便方式實現 click 偽元素時進行事件處理,附上例子代碼。

HTML結構

首先 HTML 結構是這樣的

<section>
    <span>按鈕文字</span>
</section>

實現方法

第一種

通過 CSS3 的 pointer-events 特性來實現。

CSS 代碼

<style>
    *{margin: 0; padding:0;}
    section{
        border: 1px solid #abc;
        border-radius: 5px;
        background-color: #def;
        font-family: Microsoft YaHei;
        height: 40px;
        box-sizing: border-box;
        cursor: pointer;
        font-size: 16px;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);

        pointer-events: none;    /* 關鍵點在這里,元素禁止響應鼠標事件 */
    }

    section::after{
        content: '';
        border-left: 1px solid #abc;
        display: inline-block;
        width: 24px;
        height: 100%;
        background-size: contain;
        background-position: center;
        background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAABEklEQVRoQ+2X3Q3CMAyE3Y3YBDZAbOBRzAaMwkiMgCqlUoX4SX13qiKcl77Uzn13ddpONviaBtdvBbB3gpVAJQA6UI8QaCBcXgnAFoINKgHQQLhcmoC738zsHhHzVbJkAE38uam+qCAkAC/iF+clEHSAD+JlEFSAH+IlEDSATvF0CArARvFUCBggKZ4GAQG4+8HMTuABHxHxyPaAALKbMusKgOlmptd/J9CG+JhxblVz3XWIhz5GFxeTEJSPO9oMbISgiJ8NpAHMzTohaOLpAB0QVPESgC8QdPEygDcQEvFSgBXEmD/14Mutu5x6CnXvSryxAIhmplpVAinbiEWVANHMVKtKIGUbsagSIJqZajV8Ak/MSlox+m54VQAAAABJRU5ErkJggg==);

        pointer-events: auto;    /* 關鍵點在這里,偽元素覆蓋父元素的 pointer-events: none ,響應鼠標事件 */
    }

    section span{
        display: inline-block;
        height: 100%;
        vertical-align: top;
        line-height: 40px;
        padding-left: 10px;
    }
</style>

JavaScript 代碼

<script>
    document.querySelector('section').addEventListener('click', ()=>{
        console.log('只有點擊偽元素才能觸發click');
    });
</script>

第二種

通過阻止事件冒泡的方式實現

CSS基礎代碼同上,將 pointer-events: none; 和 pointer-events: auto; 。

<script>
    document.querySelector('section').addEventListener('click', ()=>{
        // 因為其他子元素事件冒泡被阻止了,所以點擊section的時候,只剩下偽元素覆蓋區域進入到事件監聽中
        console.log('只有偽元素才能觸發click');
    });

    document.querySelector('span').addEventListener('click', ev=>{
        // 阻止文字元素的事件冒泡
        ev.stopPropagation();
    });
</script>

第三種

通過 event 對象的指針坐標來判斷點擊的是否在偽元素范圍內,這種方式網上很多,大家去度娘一下就有了。

感謝各位的閱讀!關于HTML標簽偽元素綁定事件的方式有哪些就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

邵阳县| 灌阳县| 大名县| 鄱阳县| 通许县| 沛县| 林口县| 建德市| 都昌县| 北安市| 杂多县| 锦州市| 清远市| 延川县| 长春市| 昆山市| 邵武市| 偃师市| 鹤壁市| 上杭县| 邹城市| 大理市| 麻栗坡县| 萨迦县| 自治县| 诏安县| 乌拉特中旗| 伊宁县| 汉阴县| 封丘县| 虎林市| 广安市| 灌云县| 独山县| 柳河县| 喀什市| 竹山县| 英超| 蒙阴县| 图木舒克市| 巫溪县|