基于jQuery实现火焰灯效果导航菜单


Posted in Javascript onJanuary 04, 2017

效果描述为:当鼠标经过某一导航选项的时候,后面的背景图片(上图“圣诞节”后圆角背景)会弹性缓动到该导航选项,如果没有发生单击动作,鼠标移开后,背景图又回到原来的位置。

您可以狠狠地点击这里:demo效果页面

使用说明:

1、需要链接的文件

需要调用的文件有:jQuery库(1.2以上版本),jQuery缓动插件(jquery.easing.min.js),火焰灯效果插件(jquery.lavalamp.min.js)以及一个ul li列表的样式文件。例如,本demo实例页面链接如下截图:

基于jQuery实现火焰灯效果导航菜单

2、HTML代码的写法

从jQuery代码来看,HTML只支持li列表,无序或有序列表(ol 或 ul)。例如下面的示例:

<ul class="lava_lamp">
    <li class="current"><a href="#zhangxinxu">圣诞节</a></li>
    <li><a href="#zhangxinxu">地震</a></li>
    <li><a href="#zhangxinxu">股市</a></li>
    <li><a href="#zhangxinxu">《十月围城》</a></li>
    <li><a href="#zhangxinxu">无线音乐咪咕汇</a></li>
</ul>

3、相应的CSS写法

CSS的写法与平时使用无序列表写导航条是没有太大差异的,不同在于最内部的a标签需要设置position为relative并给定一个相对较高的层级(z-index),这是显示原理(稍后讨论)决定的。还有就是需要添加一个class为back的li标签的样式,这个样式就是后面移动的背景图片(或背景色或边框等)的样式。例如,上面的HTML的CSS可以如下(大致示意):

/*下边框*/
. lava_lamp{position:relative; width:421px; height:29px; padding:15px; border:1px solid silver;}
. lava_lamp li{float:left;}
. lava_lamp li a{float:left; font-weight:bold; color:#333333; font-size:14px; top:8px; margin:auto 10px; text-decoration:none; position:relative; z-index:3;}
. lava_lamp li a:hover{text-decoration:none; color:#333333;}
. lava_lamp li.back{height:30px; border-bottom:3px solid #34538b; position:absolute; z-index:2;}

4、js部分的代码

js用法很简单。在$(function(){});之内写上$(“选择器”).lavaLamp();其实就可以了。然而一般而言,会设置一些参数。还是上面的例子:

$(". lava_lamp").lavaLamp({
 fx: "backout", //缓动类型
 speed: 700, //缓动时间
 click: function(event, menuItem) {
 return false; //单击触发事件
 }
});

这里有三个参数:fx,speed,click分别表示缓动类型,缓动执行的时间,以及单击菜单后的触发的事件。根据您的需求可以做相应的修改,例如:fx: “bounceout”,speed: 1000 。

5、完成预览

一般而言,预览就可以看到效果了。如果您在IE6下发现背景图片移动不顺畅,试试在js中加入:document.execCommand(“BackgroundImageCache”, false, true);

原理简述:

讲一下jQuery代码都做了什么工作:
jQuery首先做的事情就是在ul列表中又添加了一个class为back的li标签,在CSS中,li.back被设置为为绝对定位(position:absolute;z-index:2;),层级小于导航中a标签(position:relative;z-index:3;)的层级,所有,这里含有背景图片(或背景色或边框)的li.back标签会在文字的下方(a标签下方)显示。

jQuery做的另外一件事情就是控制li.back这个标签层的宽度以及left的位置了,也就是动画效果了。这需要结合easing缓动插件了,如果仅是单纯的移动,easing插件是不需要的,animate函数即可实现。

基于jQuery实现火焰灯效果导航菜单

您可以狠狠地点击这里:源文件打包下载(.zip 24.3k)

参考:http://www.gmarwaha.com/blog/2007/08/23/lavalamp-for-jquery-lovers/

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
phpwind放自动注册方法
Dec 02 Javascript
JS获取图片lowsrc属性的方法
Apr 01 Javascript
Extjs实现下拉菜单效果
Apr 01 Javascript
Bootstrap多级菜单的实现代码
May 23 Javascript
Node.js利用js-xlsx处理Excel文件的方法详解
Jul 05 Javascript
vue实现商品加减计算总价的实例代码
Aug 12 Javascript
浏览器事件循环与vue nextTicket的实现
Apr 16 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
Aug 20 Javascript
vue组件暴露和.js文件暴露接口操作
Aug 11 Javascript
解决vue init webpack 下载依赖卡住不动的问题
Nov 09 Javascript
详解JavaScript原型与原型链
Nov 16 Javascript
字节飞书面试promise.all实现示例
Jun 16 Javascript
深入理解Javascript中的valueOf与toString
Jan 04 #Javascript
使用UrlConnection实现后台模拟http请求的简单实例
Jan 04 #Javascript
js实现定时进度条完成后切换图片
Jan 04 #Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
Jan 04 #Javascript
深入理解JavaScript中的预解析
Jan 04 #Javascript
jQuery操作json常用方法示例
Jan 04 #Javascript
Bootstrap select下拉联动(jQuery cxselect)
Jan 04 #Javascript
You might like
PHP 基于文件头的文件类型验证类函数
2012/05/01 PHP
ThinkPHP模板判断输出Present标签用法详解
2014/06/30 PHP
PHP生成plist数据的方法
2015/06/16 PHP
php+ajax实现仿百度查询下拉内容功能示例
2017/10/20 PHP
JavaScript Title、alt提示(Tips)实现源码解读
2010/12/12 Javascript
Javascript 完美运动框架(逐行分析代码,让你轻松了运动的原理)
2015/01/23 Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
2015/05/12 Javascript
js去字符串前后空格的实现方法
2016/02/26 Javascript
浅谈js图片前端预览之filereader和window.URL.createObjectURL
2016/06/30 Javascript
11行JS代码制作二维码生成功能
2018/03/09 Javascript
layui实现动态和静态分页
2018/04/28 Javascript
一文读懂ES7中的javascript修饰器
2019/05/06 Javascript
ES6模板字符串和标签模板的应用实例分析
2019/06/25 Javascript
vue实现表单录入小案例
2019/09/27 Javascript
小程序如何定位所在城市及发起周边搜索
2020/02/11 Javascript
vue3+typeScript穿梭框的实现示例
2020/12/29 Vue.js
详解Python中的正则表达式的用法
2015/04/09 Python
解决python大批量读写.doc文件的问题
2018/05/08 Python
django输出html内容的实例
2018/05/27 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
2020/01/20 Python
深入了解Python 变量作用域
2020/07/24 Python
HTML5的结构和语义(3):语义性的块级元素
2008/10/17 HTML / CSS
关于HTML5的22个初级技巧(图文教程)
2012/06/21 HTML / CSS
澳大利亚时尚前卫设计师珠宝在线:Amber Sceats
2017/10/04 全球购物
阿玛瑞酒店中文官方网站:Amari.com
2018/02/13 全球购物
Conforama瑞士:家具、厨房、电器、装饰
2020/09/06 全球购物
施工资料员的岗位职责
2013/12/22 职场文书
开服装店计划书
2014/08/15 职场文书
合作合同协议书范本
2015/01/27 职场文书
舌尖上的中国观后感
2015/06/02 职场文书
找规律教学反思
2016/02/23 职场文书
python pyhs2 的安装操作
2021/04/07 Python
jdbc使用PreparedStatement批量插入数据的方法
2021/04/27 MySQL
Node与Python 双向通信的实现代码
2021/07/16 Javascript
PHP正则表达式之RCEService回溯
2022/04/11 PHP
MySQL数据库 任意ip连接方法
2022/05/20 MySQL