css2中规定,:hover伪类可以应用在全部元素上,而ie6只支持<a>的伪类,因此对于ie6需要使用js,而ie7/ff/op/sa直接定义:hover即可。
javascript文件
var VeVbcom = (document.createelement() && document.getelementsbytagname());
window.onload = pinballeffect;
function pinballeffect()
{
if (!VeVbcom) 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>
新闻热点
疑难解答