怎么用CSS或者JS实现鼠标点击变换背景图片?

html-css011

怎么用CSS或者JS实现鼠标点击变换背景图片?,第1张

使用jquery的toggle方法进行图片切换\x0d\x0a$(function(){\x0d\x0a$("#h1").toggle(function(){\x0d\x0a$("#h1").css("background-image","路径('./20110528073501b54e6.jpg')")\x0d\x0a},function(){\x0d\x0a$("#h1").css("background-image","路径('./2011060708410874041.jpg')")\x0d\x0a})\x0d\x0a}) \x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0aCSS\x0d\x0a.hh1{\x0d\x0abackground: url("./2011060708410874041.jpg")\x0d\x0awidth: 120px\x0d\x0aheight: 90px\x0d\x0a}

要CSS的呀?一般都用JS的。

如果是CSS的,只能做到背景切换,做不到图片本身切换。

为了要支持IE6,所以一般都用a的伪类来做这种效果

a{background-image:url(普通状态时的背景图片)}

a:hover{background-image:url(鼠标放上去的背景图片)}

如果是做图片本身切换的话,只能用JS

<img src="原图片" onmouseover="this.src='新图片'" onmouseout="this.src='原图片'" />

该图片切换特效实现很简单,而且兼容性很好。 

html页面如下

<div class="wrapper"> 

<div id="focus"> 

<ul> 

<li><a href="http://www.lanrentuku.com/" target="_blank"><img src="img/01.jpg" alt="QQ商城焦点图效果下载" /></a></li> 

<li><a href="http://www.lanrentuku.com/" target="_blank"><img src="img/02.jpg" alt="QQ商城焦点图效果教程" /></a></li> 

<li><a href="http://www.lanrentuku.com/" target="_blank"><img src="img/03.jpg" alt="jquery商城焦点图效果" /></a></li> 

<li><a href="http://www.lanrentuku.com/" target="_blank"><img src="img/04.jpg" alt="jquery商城焦点图代码" /></a></li> 

<li><a href="http://www.lanrentuku.com/" target="_blank"><img src="img/05.jpg" alt="jquery商城焦点图源码" /></a></li> 

</ul> 

</div> 

</div><!-- wrapper end --> 

</body> 

css样式

<style type="text/css">

* {margin:0padding:0} 

body {font-size:12pxcolor:#222font-family:Verdana,Arial,Helvetica,sans-serifbackground:#f0f0f0} 

.clearfix:after {content: "."display: blockheight: 0clear: bothvisibility: hidden} 

.clearfix {zoom:1} 

ul,li {list-style:none} 

img {border:0} 

.wrapper {width:800pxmargin:0 autopadding-bottom:50px} 

/* qqshop focus */ 

#focus {width:800pxheight:280pxoverflow:hiddenposition:relative} 

#focus ul {height:380pxposition:absolute} 

#focus ul li {float:leftwidth:800pxheight:280pxoverflow:hiddenposition:relativebackground:#000} 

#focus ul li div {position:absoluteoverflow:hidden} 

#focus .btnBg {position:absolutewidth:800pxheight:20pxleft:0bottom:0background:#000} 

#focus .btn {position:absolutewidth:780pxheight:10pxpadding:5px 10pxright:0bottom:0text-align:right} 

#focus .btn span {display:inline-block_display:inline_zoom:1width:25pxheight:10px_font-size:0margin-left:5pxcursor:pointerbackground:#fff} 

#focus .btn span.on {background:#fff} 

#focus .preNext {width:45pxheight:100pxposition:absolutetop:90pxbackground:url(img/sprite.png) no-repeat 0 0cursor:pointer} 

#focus .pre {left:0} 

#focus .next {right:0background-position:right top} 

</style> 

js脚本

$(function() { 

var sWidth = $("#focus").width()//获取焦点图的宽度(显示面积) 

var len = $("#focus ul li").length//获取焦点图个数 

var index = 0 

var picTimer 

//以下代码添加数字按钮和按钮后的半透明条,还有上一页、下一页两个按钮 

var btn = "<div class='btnBg'></div><div class='btn'>" 

for(var i=0i <leni++) { 

btn += "<span></span>" 

btn += "</div><div class='preNext pre'></div><div class='preNext next'></div>" 

$("#focus").append(btn) 

$("#focus .btnBg").css("opacity",0.5) 

//为小按钮添加鼠标滑入事件,以显示相应的内容 

$("#focus .btn span").css("opacity",0.4).mouseenter(function() { 

index = $("#focus .btn span").index(this) 

showPics(index) 

}).eq(0).trigger("mouseenter") 

//上一页、下一页按钮透明度处理 

$("#focus .preNext").css("opacity",0.2).hover(function() { 

$(this).stop(true,false).animate({"opacity":"0.5"},300) 

},function() { 

$(this).stop(true,false).animate({"opacity":"0.2"},300) 

}) 

//上一页按钮 

$("#focus .pre").click(function() { 

index -= 1 

if(index == -1) {index = len - 1} 

showPics(index) 

}) 

//下一页按钮 

$("#focus .next").click(function() { 

index += 1 

if(index == len) {index = 0} 

showPics(index) 

}) 

//本例为左右滚动,即所有li元素都是在同一排向左浮动,所以这里需要计算出外围ul元素的宽度 

$("#focus ul").css("width",sWidth * (len)) 

//鼠标滑上焦点图时停止自动播放,滑出时开始自动播放 

$("#focus").hover(function() { 

clearInterval(picTimer) 

},function() { 

picTimer = setInterval(function() { 

showPics(index) 

index++ 

if(index == len) {index = 0} 

},4000)//此4000代表自动播放的间隔,单位:毫秒 

}).trigger("mouseleave") 

//显示图片函数,根据接收的index值显示相应的内容 

function showPics(index) { //普通切换 

var nowLeft = -index*sWidth//根据index值计算ul元素的left值 

$("#focus ul").stop(true,false).animate({"left":nowLeft},300)//通过animate()调整ul元素滚动到计算出的position 

//$("#focus .btn span").removeClass("on").eq(index).addClass("on")//为当前的按钮切换到选中的效果

$("#focus .btn span").stop(true,false).animate({"opacity":"0.4"},300).eq(index).stop(true,false).animate({"opacity":"1"},300)//为当前的按钮切换到选中的效果 

}) 

用到的左右切换图片