javascript
html js不触发_图文详解鼠标事件CSS:hover和JS:mouseover的区别
在工作中為了使頁面更具有吸引力,前端開發人員經常會在頁面中加上鼠標移入和移出的效果。鼠標移入移出的設置,一般有兩種方法,一種是單純用CSS中的hover偽類,另一種可以用JS 中的DOM事件,即onmouseover和onmouseout。接下來這篇文章就和大家講講CSS偽類hover和JS鼠標事件mouseover的區別,希望可以幫助到你。
程序猿的生活:打造全網web前端全棧資料庫(總目錄)看完學的更快,掌握的更加牢固,你值得擁有(持續更新)?zhuanlan.zhihu.comJS可以對 HTML 事件作出反應,mouse屬于javascript里的,他可以觸發js命令,當元素綁定一個事件,事件發生的時候,可以執行一段javascript代碼。
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;}
效果圖:
一個大盒子中含有兩個小的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";
}
效果圖:
左圖是鼠標未移入的樣式,和上面一樣,中間圖片是鼠標經過樣式,上面一個div的背景顏色變成了粉色,而且內容變成了“鼠標移入”,右圖是鼠標移出后的效果,div里面的內容變了。通過兩個例子的對比,應該知道hover和mouseover,mouseout之間的區別了吧。
總結:CSS只能改變元素的樣式,無法改變元素的內容,如果要改變內容應該使用JavaScript鼠標事件onmouseover和onmouseout。所以只是為了樣式效果,用CSS的偽類hover,如果需要動態改變,則選擇js的事件。在工作中具體有什么還要看情況,選擇適合的方法。希望這個教程對你有用。
以上就是圖文詳解鼠標事件CSS:hover和JS:mouseover的區別的詳細內容,更多請關注我!!!
總結
以上是生活随笔為你收集整理的html js不触发_图文详解鼠标事件CSS:hover和JS:mouseover的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 眼视力下降怎么办
- 下一篇: 眼眶痛会导致干眼症吗?