jQuery增加div背景切换效果问题

一个div设置了背景图片,当鼠标移到div上后背景变为另一张图片,怎样写jQuery代码使得这一变化之间有动作,比如fadeTo之类... 一个div设置了背景图片,当鼠标移到div上后背景变为另一张图片,怎样写jQuery代码使得这一变化之间有动作,比如fadeTo之类 展开
 我来答
miniapp2S0kX4aPdBeON
推荐于2016-01-22 · TA获得超过753个赞
知道小有建树答主
回答量:750
采纳率:0%
帮助的人:633万
展开全部
用css3的动画属性更佳,为div加上一个过度效果:
.div { background:url(1.jpg); transition-duration:1s; width:100px; height:100px;}
.div:hover { background:url(2.jpg);}
会让你有惊喜的

css3的动画效果非常流畅,而且更易维护,只是对IE8以下不支持。

jQuery方法改变背景可以用替换css样式方法,这个方法做不了动画效果,要制作动画效果建议用绝对定位来做,思路是:

建立1个div样式,定位relative,2个内部div,宽度、高度与div相同,定位:absolute,设置2个div的各自背景,如果div中要显示内容,要注意z-index的设置,先设置-1,当作背景,如果某浏览器不能正常显示,就把z-index设置0,div中的内容设置z-index>0,Jquery当hover时fadeOut div1,fadeIn div2。
.div { position:relative; width:...........}
.divbg1 {position:absolute; background:url(1.jpg); width:...........}

.divbg2 {position:absolute; background:url(2.jpg); width:...........}

HTML:
<div class='div'>
<div class='divbg1'></div>

</div>

JS:
$(function(){
$('.div').hover(function(){
$(this).find('.divbg1').fadeOut(300);
$(this).find('.divbg2').fadeIn(300);
},function(){
$(this).find('.divbg2').fadeOut(300);
$(this).find('.divbg1').fadeIn(300);
})

})

代码手写,未经测试,有问题再追问
追问
css3试过,但貌似没有jQuery中fadeTo的效果,因为我目前就是要那种效果哈。另外div中嵌入div感觉有点复杂了,不适合用来做导航
追答
做导航来说,最适合的就是css3,效率和动画效果最好。
div嵌入div是没有办法的事情,你要求的fade动画,原理就是一个渐隐一个渐显,那么在一个背景上是无法实现的,用2个div看似复杂,还是很容易维护的。
再或者就是flash,或者背景是gif动画的fade效果,都是可以考虑的。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式