查看: 8287|回复: 0
打印 上一主题 下一主题

基于jQuery实现的类flash菜单效果

[复制链接]
跳转到指定楼层
1#
发表于 2009-7-24 13:36:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
台州网址导航
除了上文中的渐变文字,dragoninteractive网站还有一个很酷的效果,就是网站菜单的鼠标特效,如果不看代码,我们很多人估计该要误以为这个是flash特效了,只是这里还是用JS来实现的。这个看着貌似简单的站实现了很多我们以为只有图片和flash才能实现的效果。

废话不多说了,这里要说的就是一个菜单的hover的效果,一般我们通过CSS的伪类:hover实现的菜单切换都比较单调,因为仅仅是一个简单的图片的变化,不像很多flash菜单一样变化非常的平滑,但是这里我们就是要用非flash的技术实现一个平滑的hover效果。

先来看看效果:http://www.ajaxbbs.net/test/hovermenu/

因为下面的menu和上面的logo的实现原理一样,为了简化起见,我们这里只拿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;
}

这里有一个.hover的class,从html中并没有发现,不要着急,这个在后面的js中会用到。

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很清楚的描述了该效果的实现原理:首先在链接中创建一个class为hover的span(这个span是鼠标放到连接上时的现实效果),并且将其透明度设置为0,然后当鼠标移到连接上时,将该span的透明逐渐调整为1,这样上面的span就会覆盖a的默认效果,这样就实现我们的动画效果。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

网站推广
关于我们
  • 台州朗动科技(Tzweb.com)拥有多年开发网站平台系统门户手机客户端等业务的成功经验。主要从事:政企网站,系统平台,微信公众号,各类小程序,手机APP客户端,浙里办微应用,浙政钉微应用、主机域名、虚拟空间、后期维护等服务,满足不同企业公司的需求,是台州地区领先的网络技术服务商!

Hi,扫描关注我

Copyright © 2005-2026 站长论坛 All rights reserved

Powered by 站长论坛 with TZWEB Update Techonolgy Support

快速回复 返回顶部 返回列表