先來看看效果:http://demo.VeVB.COm/js/jquery_flash/demo.htm
因?yàn)橄旅娴膍enu和上面的logo的實(shí)現(xiàn)原理一樣,為了簡化起見,我們這里只拿logo部分的代碼來說明一下原理:
HTML代碼:
<a id="logotype" href=""><span>Logo Type</span></a>
CSS代碼:
a#logotype{ background: url(logotype.jpg) no-repeat top left; display: block; position: relative; height: 70px; width: 119px; } a#logotype span{display:none} a#logotype .hover { background: url(logotype.jpg) no-repeat bottom left; display: block; position: absolute; top: 0; left: 0; height: 70px; width: 119px; } a#logotype{
background: url(logotype.jpg) no-repeat top left;
display: block;
position: relative;
height: 70px;
width: 119px;
}
a#logotype span{display:none}
a#logotype .hover {
background: url(logotype.jpg) no-repeat bottom left;
display: block;
position: absolute;
top: 0;
left: 0;
height: 70px;
width: 119px;
}
這里有一個(gè).hover的class,從html中并沒有發(fā)現(xiàn),不要著急,這個(gè)在后面的js中會(huì)用到。
JS代碼:
$(function() { var fadeSpeed = ($.browser.safari ? 600 : 450); $('#logotype').append('<span class="hover"></span>'); $('.hover').css('opacity', 0); $('.hover').parent().hover(function() { $('.hover', this).stop().animate({ 'opacity': 1 }, fadeSpeed) }, function() { $('.hover', this).stop().animate({ 'opacity': 0 }, fadeSpeed) }); }); $(function() {
var fadeSpeed = ($.browser.safari ? 600 : 450);
$('#logotype').append('<span class="hover"></span>');
$('.hover').css('opacity', 0);
$('.hover').parent().hover(function() {
$('.hover', this).stop().animate({
'opacity': 1
},
fadeSpeed)
},
function() {
$('.hover', this).stop().animate({
'opacity': 0
},
fadeSpeed)
});
});
這段JS很清楚的描述了該效果的實(shí)現(xiàn)原理:首先在鏈接中創(chuàng)建一個(gè)class為hover的span(這個(gè)span是鼠標(biāo)放到連接上時(shí)的現(xiàn)實(shí)效果),并且將其透明度設(shè)置為0,然后當(dāng)鼠標(biāo)移到連接上時(shí),將該span的透明逐漸調(diào)整為1,這樣上面的span就會(huì)覆蓋a的默認(rèn)效果,這樣就實(shí)現(xiàn)我們的動(dòng)畫效果。
基于jQuery實(shí)現(xiàn)的仿flash菜單效果