css2中规定,:hover伪类可以应用在全部元素上,而ie6只支持<a>的伪类,因此对于ie6需要使用js,而ie7/ff/op/sa直接定义:hover即可。
JavaScript文件
var WebjxCom = (document.createElement() && document.getElementsByTagName()); window.onload = pinballEffect; function pinballEffect() { if (!WebjxCom) return; var allElements = document.getElementsByTagName(''*''); var originalBackgrounds=new Array(); for (var i=0; i<allElements.length; i++) { if (allElements[i].className.indexOf(''hovereffect'') >= 0) { allElements[i].onmouseover = mouseGoesOver; allElements[i].onmouseout = mouseGoesOut; } } } function mouseGoesOver() { originalClassNameString = this.className; this.className += " lay-on"; } function mouseGoesOut() { this.className = originalClassNameString; } pinballEffect();
下面的代码是html代码,插入到head区内:
<!--[if lte IE 6]> <script type="text/javascript" language="Javascript" src="hover.js"></script> <![endif]-->因为IE 7+支持:hover,因此使用条件注释,只针对IE 6-调用该JS文件。
相应的CSS为:
/* 这个是普通样式,定义给需要效果的元素 */ .hovereffect { border:1px solid blue; } /* 这个是hover样式 */ .hovereffect:hover, .lay-on { background: #eee; border:1px solid red; }
应用:
<div class="hovereffect">div的hover</div> <p class="hovereffect">p的hover</p> |