天天看點

圖文詳解滑鼠事件CSS:hover和JS:mouseover的差別

在工作中為了使頁面更具有吸引力,前端開發人員經常會在頁面中加上滑鼠移入和移出的效果。滑鼠移入移出的設定,一般有兩種方法,一種是單純用CSS中的hover僞類,另一種可以用JS 中的DOM事件,即onmouseover和onmouseout。接下來這篇文章就和大家講講CSS僞類hover和JS滑鼠事件mouseover的差別,希望可以幫助到你。

打造全網web前端全棧資料庫(總目錄)看完學的更快,掌握的更加牢固,你值得擁有(持續更新)

JavaScript中滑鼠事件有:

onmouseover和onmouseout: 當滑鼠移入和移出時觸發事件

onmousedown和onmouseup: 當滑鼠按鈕被按下或者松開時觸發事件

onclick和ondbclick :當滑鼠單擊或者輕按兩下時觸發事件

onmousemover :當滑鼠移動時觸發事件

CSS:hover是css中的一種僞類選擇器,指滑鼠移入然後移出的過程,這個操作可以改變元素的樣式,而且它相應的子類也被改變。但無法改變元素的内容。比如,滑鼠經過實作彈出視窗的效果,它用的是onmousemove實作的,如果用hover則沒辦法做出這樣的效果。

可能文字描述不是很好了解,接下裡,舉例個例子,看看hover和mouseover,mouseout之間有什麼不同,結合圖檔看就一目了然了。

先看看CSS:hover方法實作的效果吧

HTML部分:

<divclass="container">

     <divclass="aa">内容1</div>

     <divclass="bb">内容2</div>

</div>

CSS部分:

.container {

           width: 200px;

           border: 1pxsolid#000000;

           margin: 200pxauto;

           line-height: 100px;

           text-align: center;

          }

.aa,.bb {

          height: 100px;

          margin: 1px;

          background: #ccc;

         }

.aa:hover{background: pink;}

效果圖:

圖文詳解滑鼠事件CSS:hover和JS:mouseover的差別
圖文詳解滑鼠事件CSS:hover和JS:mouseover的差別

一個大盒子中含有兩個小的div,我想讓滑鼠經過上面一個div時,背景顔色變成粉色。左圖是滑鼠未移入的效果,右圖是滑鼠經過時的效果。從圖檔中可以看出,CSS:hover确實可以實作這個效果。

那接下來,我們看看JavaScript中的onmouseover和onmouseout又是怎麼實作的。CSS部分代碼一樣,隻是HTML加了事件,用到了JavaScript。

HTML部分:

<divclass="container">

     <divclass="aa"οnmοuseοver="over(this)"οnmοuseοut="out(this)">内容1</div>

     <divclass="bb">内容2</div>

</div>

JavaScript部分:

functionover(obj){       

                obj.innerHTML = "滑鼠移入";       

                obj.style.background = "pink";

            }

           functionout(obj){

                obj.innerHTML = "移出了";

                obj.style.background = "#ccc";       

            }

效果圖:

圖文詳解滑鼠事件CSS:hover和JS:mouseover的差別
圖文詳解滑鼠事件CSS:hover和JS:mouseover的差別
圖文詳解滑鼠事件CSS:hover和JS:mouseover的差別

左圖是滑鼠未移入的樣式,和上面一樣,中間圖檔是滑鼠經過樣式,上面一個div的背景顔色變成了粉色,而且内容變成了“滑鼠移入”,右圖是滑鼠移出後的效果,div裡面的内容變了。通過兩個例子的對比,應該知道hover和mouseover,mouseout之間的差別了吧。

總結:CSS隻能改變元素的樣式,無法改變元素的内容,如果要改變内容應該使用JavaScript滑鼠事件onmouseover和onmouseout。是以隻是為了樣式效果,用CSS的僞類hover,如果需要動态改變,則選擇js的事件。在工作中具體有什麼還要看情況,選擇适合的方法。希望這個教程對你有用。

以上就是圖文詳解滑鼠事件CSS:hover和JS:mouseover的差別的詳細内容,更多請關注我!!!

繼續閱讀