如何給一個(gè)小圖片擴(kuò)大點(diǎn)擊面積--小眾卻適用的技能-偽元素使用技巧

1704707031240_855024_t.png

這樣一個(gè)小圖標(biāo) 差不多這樣顯示

<div>
<img src='我們要顯示的圖片' @click='點(diǎn)擊要觸發(fā)的事件’ />
</div>

產(chǎn)品經(jīng)理說(shuō)可點(diǎn)擊面積太小了,如何優(yōu)雅的擴(kuò)大點(diǎn)擊面積。

方案1 首先想到一個(gè)一個(gè)方案時(shí) 增加一個(gè)dom節(jié)點(diǎn) 覆蓋在img上 點(diǎn)擊監(jiān)聽(tīng)這個(gè)新的dom結(jié)點(diǎn)。如下樣子

//增加一個(gè)dom節(jié)點(diǎn) 覆蓋在
<div>
<img src='我們要顯示的圖片'  />
<div style='絕對(duì)定位樣式 覆蓋在圖片至少 ' @click='點(diǎn)擊要觸發(fā)的事件’   ></div>
</div>

評(píng)價(jià):這個(gè)辦法的能夠解決問(wèn)題,但是增加了無(wú)用的dom ,維護(hù)會(huì)變得麻煩一點(diǎn),新人來(lái)接手 很可能搞不懂這兩個(gè)dom是什么關(guān)系 可能誤刪除其中一個(gè)。

方案2,使用偽元素 ::after或::before,但是能夠想到這個(gè)方案 需要知道偽元素的點(diǎn)擊事件會(huì)冒泡到主元素上去。具體寫(xiě)法如下

<div>
<img src='我們要顯示的圖片' @click='點(diǎn)擊要觸發(fā)的事件’ />
</div>
<style>
img::after{
 content: '';
                position: absolute;
                top: -15rpx;
                left: -15rpx;
                right: -15rpx;
                bottom: -15rpx;
}
</style>

方案評(píng)價(jià)好處:沒(méi)有增加無(wú)用dom元素,不會(huì)給維護(hù)人員造成誤解困難。偽元素的作用就是主要就是被用于為當(dāng)前元素增加裝飾性?xún)?nèi)容的,dom真正結(jié)點(diǎn)是要渲染真正的內(nèi)容的,不相關(guān)主內(nèi)容 就應(yīng)該用偽元素解決。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容