jQuery渐变发光导航菜单的实例代码


Posted in Javascript onMarch 27, 2013

jQuery渐变发光导航菜单的实例代码

jQuery渐变发光导航菜单的实例代码

下面和大家分享一下具体的实现过程。

HTML标签结构:

<ul class="animation_menu">
     <li class="current">
         <a href="#">菜单一<span>菜单一</span></a>
     </li>
     <li>
         <a href="#">菜单二<span>菜单二</span></a>
     </li>
     <li>
         <a href="#">菜单三<span>菜单三</span></a>
     </li>
     <li>
         <a href="#">菜单四<span>菜单四</span></a>
     </li>
 </ul>

CSS样式:
li的样式:

.animation_menu li{
    /*块状模式显示,并使其水平平铺显示*/
    display:block;
    float: left;
    /*宽高是背景图片的*/
    width: 111px;
    height: 50px;
    /*设置文字垂直水平居中*/
    line-height: 50px;
    text-align: center;
    font-weight: bold;
    font-size: 18px;
    list-style-type:none;
}

初始看到的a的样式:

.animation_menu li a {
    /*这里是我们背景图片*/
    background-image: url("images/bg-sprite-topmenu.png");
    background-repeat: no-repeat;    /*设置position属性是为了里面的span能够以a为基准进行定位*/
    position: relative;

    display: block;
    /*我们不使用纯黑色*/
    color: #292724;
    text-decoration:none;
}

hover后看到的span的样式:

.animation_menu li a span {
    /*这里是我们背景图片*/
    background-image: url("images/bg-sprite-topmenu.png");
    background-repeat: no-repeat;
    /*设置块模式显示,并制定宽高和a的宽高一样,和绝对位置,这是为了使其和a里面的文字重合显示*/
    display: block;
    height: 50px;
    width: 111px;
    text-align: center;
    position: absolute;
    top: 0;
    left: 0;
    color:#FFE2BB;
}

用sprite技术定位,a和span各种状态的样式:

/*正常状态下的样式*/
.animation_menu li a {
    /*一般灰色背景*/
    background-position: 0 -153px;
}
    /*hover蓝色高亮背景*/
    .animation_menu li a span {
        background-position: 0 -102px;
    }
/*链接激活状态下的样式*/
.animation_menu li.current a {
     /*一般灰色高亮背景*/
    background-position: 0 0;
}
    /*hover黄色高亮背景*/
    .animation_menu li.current a span {
        background-position: 0 -51px;
    }

css的工作到此就结束了,下面我们来看看javascript。

最后是JavaScript
菜单的渐变效果主要是通过控制opacity实现的,请看下面代码。

// 通过将opacity设置为0,将span的样式和文字隐藏起来
$(".animation_menu li a span").css("opacity", "0");
// 绑定hover事件
$(".animation_menu li a span").hover(
    //mouse on事件
    function () {
        // 通过动态的改变opacity从0到1,这样span的样式和文字就会慢慢的显示出来,覆盖a的样式
        $(this).stop().animate({
            opacity: 1
        }, "slow");
    },
    //mouse out事件
    function () {
        // 当鼠标移走的时候,动态改变为0,这样span又看不见了,看到原来的a的样式了。
        $(this).stop().animate({
            opacity: 0
        }, "slow");
    }
);
//绑定click事件,点击当前连接,为li添加current class,同时移除其他li的current class
$(".animation_menu li a").click(function () {
    $(".animation_menu li a").each(function (index, item) {
        $(item).parent().removeClass("current");
    });
    $(this).parent().addClass("current");
});

到此全部结束,希望这个jQuery导航菜单能够给你一些灵感。

Javascript 相关文章推荐
JQuery 初体验(建议学习jquery)
Apr 25 Javascript
jquery next nextAll nextUntil siblings的区别介绍
Oct 05 Javascript
jQuery源码解读之removeClass()方法分析
Feb 20 Javascript
javascript实现很浪漫的气泡冒出特效
Sep 05 Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
Nov 25 Javascript
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
Dec 08 Javascript
JS获取多维数组中相同键的值实现方法示例
Jan 06 Javascript
Javascript 两种刷新方法以及区别和适用范围
Jan 17 Javascript
vue-cli 自定义指令directive 添加验证滑块示例
Oct 19 Javascript
vue.js引入外部CSS样式和外部JS文件的方法
Jan 06 Javascript
JS实现拼图游戏
Jan 29 Javascript
JavaScript直接调用函数与call调用的区别实例分析
May 22 Javascript
鼠标放在图片上显示大图的JS代码
Mar 26 #Javascript
javascript数组去重3种方法的性能测试与比较
Mar 26 #Javascript
两种常用的javascript数组去重方法思路及代码
Mar 26 #Javascript
javascript变量作用域使用中常见错误总结
Mar 26 #Javascript
定时器(setTimeout/setInterval)调用带参函数失效解决方法
Mar 26 #Javascript
设为首页加入收藏兼容360/火狐/谷歌/IE等主流浏览器的代码
Mar 26 #Javascript
jquery 无限级联菜单案例分享
Mar 26 #Javascript
You might like
用libTemplate实现静态网页的生成
2006/10/09 PHP
PHP详细彻底学习Smarty
2008/03/27 PHP
解析php中获取系统信息的方法
2013/06/25 PHP
thinkphp制作404跳转页的简单实现方法
2016/09/22 PHP
PHP基于GD库的图像处理方法小结
2016/09/27 PHP
javascript 获取页面的高度及滚动条的位置的代码
2010/05/06 Javascript
获取服务器传来的数据 用JS去空格的正则表达式
2012/03/26 Javascript
JS无限极树形菜单,json格式、数组格式通用示例
2013/07/30 Javascript
点击弹出层外区域关闭弹出层jquery特效示例
2013/08/25 Javascript
Windows系统中安装nodejs图文教程
2015/02/28 NodeJs
实例讲解javascript注册事件处理函数
2016/01/09 Javascript
javascript函数的四种调用模式
2017/01/08 Javascript
Windows下Node.js安装及环境配置方法
2017/09/18 Javascript
jQuery中库的引用方法
2018/01/06 jQuery
Vue组件间通信方法总结(父子组件、兄弟组件及祖先后代组件间)
2019/04/17 Javascript
[02:57]2014DOTA2国际邀请赛 选手辛苦解说更辛苦
2014/07/10 DOTA
[02:36]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma 选手采访
2021/03/11 DOTA
python 执行shell命令并将结果保存的实例
2018/05/11 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
2018/10/16 Python
由Python编写的MySQL管理工具代码实例
2019/04/09 Python
python文档字符串(函数使用说明)使用详解
2019/07/30 Python
Flask框架搭建虚拟环境的步骤分析
2019/12/21 Python
python 实现list或string按指定分段
2019/12/25 Python
Python OpenCV读取中文路径图像的方法
2020/07/02 Python
appium+python自动化配置(adk、jdk、node.js)
2020/11/17 Python
CSS3使用border-radius属性制作圆角
2014/12/22 HTML / CSS
Linux如何压缩可执行文件
2013/10/21 面试题
国际经济与贸易专业大学生职业规划书
2014/03/01 职场文书
贺卡寄语大全
2014/04/11 职场文书
史学专业毕业生求职信
2014/05/09 职场文书
师德师风承诺书
2014/05/23 职场文书
创先争优演讲稿
2014/09/15 职场文书
导游词400字
2015/02/13 职场文书
2015医院个人工作总结范文
2015/05/21 职场文书
java调用Restful接口的三种方法
2021/08/23 Java/Android
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis