CSS实现JS鼠标经过替换图片效果
阅读:7570 次 编辑日期:2013-12-06
目录:
概述:
在工作中,我们经常会用到一个效果,就是鼠标经过之后图片替换的效果,如果要是让大家写这个效果首先想到的方法是什么?
我觉得80%的人会说JS或者CSS的背景定位,没错~用jQuery的hover效果很简单就能实现,用背景定位也不难。
JS方法:
JS的方法也很多,就说一个,用hover;
$("#uw3c").hover(function(){
$(this).attr("src","http://www.uw3c.com/img1.jpg");
},funciton(){
$(this).attr("src","http://www.uw3c.com/img2.jpg");
})
鼠标经过时图片为img1,离开时为img2。
背景定位的方法:
先说一下,北京定位是将背景图片左上角的原点,放置在规定的位置
a{ padding:5px;background:url("http://www.uw3c.com/img1.jpg") 0 0};
a:hover{ background:url("http://www.uw3c.com/img1.jpg") 10px 0};
当hover事件的时候改变北京定位的位置。
margin的负值的方法:
以上是我们比较常用的两种方法了,但是我们今天着重介绍的是下面这种方法,使用margin的负值:
CSS://
a:hover{
background: none;
}
a{
text-indent:0px;width: 125px;
float:left; display: block;
overflow:hidden;
}
a:hover img{
margin-left: -125px;
}
HTML://
3种方法的比较:
首先是JS的方法:JS是脚本,能不写尽量不要写,所以3中方法里面JS的方法是最差的。
其次是hover的方法:图片数量少的时候还可以,但是一旦图片数量多起来,URL请求数过于庞大,对页面的优化相当不利。
最后是margin负值的方法:既不写脚本,也可以减少一半的图片请求数,关键是用img标签可以使用LazyLoad,对页面优化相当有利,所以推荐这种方法。