css2中規定,:hover偽類可以應用在全部元素上,而ie6只支持<a>的偽類,因此對於ie6需要使用js,而ie7/ff/op/sa直接定義:hover即可。
JavaScript文件
var poluoluoCom = (document.createElement() && document.getElementsByTagName());
window.onload = pinballEffect;
function pinballEffect()
{
if (!poluoluoCom) 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>