我想创建一系列按钮。当用户将鼠标悬停在按钮上时,我想在后台显示不同的图像。 bg图像之间的过渡应该是平滑的交叉淡入淡出。
我已粘贴一些代码来显示我的设置:http://jsfiddle.net/Rk4YG/
注意:停止选择背景图片会很好 - 这是否意味着使用css background-image?
如果有人能帮助我写一些代码来实现这一点,或者指出我正确指导的方向,我将非常感激。
提前感谢您的帮助。
答案 0 :(得分:1)
这可能会让你开始:
<强> HTML 强>
我们使用HTML5数据属性来存储每个背景图像的名称。稍后将使用jQuery .attr()
函数对其进行检索。
<div role="main" class="mid"></div>
<div class="btncontain">
<div class="btn btn1" data-bg-img="image0.png"><a href="#">Button 1</a></div>
<div class="btn btn2" data-bg-img="image1.png"><a href="#">Button 2</a></div>
<div class="btn btn3" data-bg-img="image2.png"><a href="#">Button 3</a></div>
<div class="btn btn4" data-bg-img="image3.png"><a href="#">Button 4</a></div>
<div class="btn btn5" data-bg-img="image4.png"><a href="#">Button 5</a></div>
<div class="btn btn6" data-bg-img="image5.png"><a href="#">Button 6</a></div>
<div class="btn btn7" data-bg-img="image6.png"><a href="#">Button 7</a></div>
<div class="btn btn8" data-bg-img="image7.png"><a href="#">Button 8</a></div>
<div class="clearfix"></div>
</div>
<强> CSS 强>
.mid
现在位于按钮后面。两者都是absolutley定位,以使分层正确。
body { padding: 0; margin:0; }
.mid { width:100%; height: 700px; position:absolute; }
.btncontain { width:80%; margin: 0 auto; position:absolute; }
.btn a { width: 150px; height: 70px; background: yellow; float: left; margin: 0 30px 100px 30px; }
.mid { background-image: url(image0.png);
<强>的JavaScript 强>
jQuery animate函数在div.mid
中在后台顶部淡出。一旦它100%不透明,我们就会将背景图像切换为新图像并隐藏div.mid
。
$(function(){
$('.btn a').parents('.btn').hover(function(){
var img = $(this).attr('data-bg-img'),
afterFadeIn = function() {
$('body').css('background-image', 'url(' + img + ')');
$('mid').css('opacity', 0);
};
$('.mid')
.css({'background-image': 'url(' + img + ')', 'opacity': 0})
.animate({ 'opacity' : 1 }, 500, afterFadeIn);
});
});