国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > CSS > 正文

兩個div疊加觸發(fā)事件發(fā)生閃爍問題的解決方法

2024-07-11 08:36:50
字體:
供稿:網(wǎng)友

當(dāng)鼠標(biāo)移到div1上的時候,會出現(xiàn)div2。出現(xiàn)時div2在div1的上面,div2在出現(xiàn)后發(fā)生閃爍的問題。

于是開始找問題根源,發(fā)現(xiàn)原來是因為當(dāng)我們觸發(fā)div1的時候,div2出現(xiàn),但是div2是存在于div1上面的,所以當(dāng)div2出現(xiàn)后,會又一次觸發(fā)下面div1的事件。通常我們可能給的事件是mouseover和mouseout,因為兩個div疊加,div2出現(xiàn)時會多次觸發(fā)div1的事件,所以就會發(fā)生閃爍問題。

解決:

1.一開始換mouseenter和mouseleave,但是發(fā)現(xiàn)還是一樣的問題。

注:

mouseover()與mouseout()   表示鼠標(biāo)移入和移出的時候觸發(fā),穿過子元素也會觸發(fā)

mouseenter()和mouseleave()   表示鼠標(biāo)穿過和穿出時候觸發(fā),穿過子元素不會觸發(fā)
 

2.然后又添加e.stopPropagation();阻止冒泡和e.preventDefault();阻止默認(rèn)事件,還是沒有對癥。

注:

e.stopPropagation();   //阻止冒泡之后,就不會形成冒泡向上傳遞了。

e.preventDefault();    //阻止默認(rèn)行為

3.最后換為切換事件toggle切換事件也不頂事兒。

4.最終,如果想用js解決這個問題可能不容易,用js基本都會發(fā)生閃爍問題。那么我們使用css方式是不是可以解決呢?網(wǎng)上查了很多資料,發(fā)現(xiàn)也有很多人遇到這個問題,使用的是css中的hover來解決的。

具體使用方法:

給兩個div的父元素,也就是共同包裹兩個div的盒子一個hover,當(dāng)父元素hover時,div2的樣式設(shè)置為display:block;于是就順利解決了這個問題,不會再出現(xiàn)閃爍問題。

下面上代碼:

html部分:

XML/HTML Code復(fù)制內(nèi)容到剪貼板

<div class="fudiv">  
        <span class="div1"><img src="img/jixinjia-partner1.jpg" alt=""/></span>  
        <div class="div2">  
                 <div class="box6"><img src="img/qr-code-bg1%20(1).jpg" alt="p"/></div>  
                 <p>掃碼有獎</p>  
        </div>  
</div>  

css部分:

CSS Code復(fù)制內(nèi)容到剪貼板

.fudiv:hover .div2 {   
         display: block;   
}   
  
.div2{   
          display: none;   

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 平遥县| 鄂州市| 磐安县| 卫辉市| 梁河县| 潮安县| 常宁市| 芮城县| 江阴市| 大埔县| 新化县| 正宁县| 蕉岭县| 栖霞市| 尼勒克县| 新郑市| 丹棱县| 清新县| 绵阳市| 临桂县| 肃南| 班戈县| 东丰县| 武隆县| 景谷| 永安市| 呼玛县| 漯河市| 宾阳县| 德昌县| 邵阳市| 万全县| 灵璧县| 遂昌县| 安岳县| 大姚县| 牙克石市| 澄迈县| 武山县| 巴中市| 高要市|