基于JavaScript实现熔岩灯效果导航菜单


Posted in Javascript onJanuary 04, 2017

熔岩灯效果 就是鼠标移入的时候,背景跟着滑过去~

两方法如下:

方法一:两个文件,一个HTML,一个JS。

HTML源码,

<!DOCTYPE html> 
<html> 
<head> 
 <meta charset="utf-8"> 
 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
 <meta name="viewport" content="width=device-width, initial-scale=1"> 
 <!-- 
 <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" /> 
 <link href="favicon.ico" rel="Bookmark" type="image/x-icon" /> 
 --> 
 <meta name="Generator" content="EditPlus®"> 
 <meta name="Author" content=""> 
 <meta name="Keywords" content=""> 
 <meta name="Description" content=""> 
 <title>Document</title> 
 <link href="" rel="stylesheet" /> 
 <style type="text/css"> 
  #nav { 
   position: relative; 
   background: #292929; 
   float: left; 
  } 
  #nav li { 
   float: left; 
   list-style: none; 
   border-right: 1px solid #4a4a4a; 
   border-left: 1px solid black; 
  } 
  #nav li a { 
   color: #e3e3e3; 
   position: relative; 
   z-index: 2; 
   float: left; 
   font-size: 30px; 
   font-family: helvetica, arial, sans-serif; 
   text-decoration: none; 
   padding: 30px 45px; 
  } 
  ul, li { 
   margin: 0; padding: 0; 
  } 
  #blob { 
   border-right: 1px solid #0059ec; 
   border-left: 1px solid #0059ec; 
   position: absolute; 
   top: 0; 
   z-index : 1; 
   background: #0b2b61; 
   background: -moz-linear-gradient(top, #0b2b61, #1153c0); 
   background: -webkit-gradient(linear, left top, left bottom, from(#0b2b61), to(#1153c0)); 
   -moz-border-radius: 4px; 
   -webkit-border-radius: 4px; 
   -moz-box-shadow: 2px 3px 10px #011331; 
   -webkit-box-shadow: 2px 3px 10px #011331; 
  } 
 </style> 
 <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script> 
 <script type="text/javascript" src="http://apps.bdimg.com/libs/jqueryui/1.9.2/jquery-ui.min.js"></script> 
 <script type="text/javascript" src="jquery.spasticNav.js"></script> 
</head> 
<body> 
 <ul id="nav"> 
  <li><a href="#">Home</a></li> 
  <li id="selected"><a href="#">About</a></li> 
  <li><a href="#">Blog</a></li> 
  <li><a href="#">Contact</a></li> 
 </ul> 
 
<script type="text/javascript"> 
 $('#nav').spasticNav(); 
</script> 
</body> 
</html>

JS源码,

(function($) { 
 
 $.fn.spasticNav = function(options) { 
  
  options = $.extend({ 
   overlap : 15, 
   speed : 500, 
   reset : 1500, 
   color : '#9f1f31', 
   easing : 'easeOutExpo' 
  }, options); 
  
  return this.each(function() { 
   
   var nav = $(this), 
    currentPageItem = $('#selected', nav), 
    blob, 
    reset; 
     
   $('<li id="blob"></li>').css({ 
    width : currentPageItem.outerWidth(), 
    height : currentPageItem.outerHeight() + options.overlap, 
    left : currentPageItem.position().left, 
    top : currentPageItem.position().top - options.overlap / 2, 
    backgroundColor : options.color 
   }).appendTo(this); 
    
   blob = $('#blob', nav); 
    
   $('li:not(#blob)', nav).hover(function() { 
    // mouse over 
    clearTimeout(reset); 
    blob.animate( 
     { 
      left : $(this).position().left, 
      width : $(this).width() 
     }, 
     { 
      duration : options.speed, 
      easing : options.easing, 
      queue : false 
     } 
    ); 
   }, function() { 
    // mouse out  
    reset = setTimeout(function() { 
     blob.animate({ 
      width : currentPageItem.outerWidth(), 
      left : currentPageItem.position().left 
     }, options.speed) 
    }, options.reset); 
  
   }); 
   
  }); // end each 
  
 }; 
 
})(jQuery);

方法二,使用jquery插件 jquery.lavalamp.min.js 实现。

需要调用的文件有:jQuery库,jQuery缓动插件(jquery.easing.min.js),火焰灯效果插件(jquery.lavalamp.min.js)以及一个ul li列表的样式文件。

详情参看:https://3water.com/article/102028.htm

插件官网介绍:http://lavalamp.magicmediamuse.com

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

Javascript 相关文章推荐
ASP.NET jQuery 实例10 动态修改hyperlink的URL值
Feb 03 Javascript
鼠标经过显示二级菜单js特效
Aug 13 Javascript
append和appendTo的区别以及appendChild用法
Dec 24 Javascript
JavaScript对IE操作的经典代码(推荐)
Mar 10 Javascript
JS日期加减,日期运算代码
Nov 05 Javascript
浅谈javascript中的加减时间
Jul 12 Javascript
酷! 不同风格页面布局幻灯片特效js实现
Feb 19 Javascript
微信小程序 实现点击添加移除class
Jun 12 Javascript
js数字滑动时钟的简单实现(示例讲解)
Aug 14 Javascript
vue 中几种传值方法(3种)
Nov 12 Javascript
详解nginx配置vue h5 history去除#号
Nov 09 Javascript
javascript实现下拉菜单效果
Feb 09 Javascript
使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android)
Jan 04 #Javascript
jquery+ajax实现省市区三级联动效果简单示例
Jan 04 #Javascript
基于jQuery实现火焰灯效果导航菜单
Jan 04 #Javascript
深入理解Javascript中的valueOf与toString
Jan 04 #Javascript
使用UrlConnection实现后台模拟http请求的简单实例
Jan 04 #Javascript
js实现定时进度条完成后切换图片
Jan 04 #Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
Jan 04 #Javascript
You might like
JAVA/JSP学习系列之七
2006/10/09 PHP
PHP+Memcache实现wordpress访问总数统计(非插件)
2014/07/04 PHP
php获取用户浏览器版本的方法
2015/01/03 PHP
PHP实现采集抓取淘宝网单个商品信息
2015/01/08 PHP
Yii框架创建cronjob定时任务的方法分析
2017/05/23 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
Jquery命名冲突解决的五种方案分享
2012/03/16 Javascript
JS+JSP checkBox 全选具体实现
2014/01/02 Javascript
javascript/jquery获取地址栏url参数的方法
2014/03/05 Javascript
理解javascript对象继承
2016/04/17 Javascript
深入浅析JS Function()构造函数
2016/08/22 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
2017/03/03 Javascript
javascript 中的继承实例详解
2017/05/05 Javascript
React-router 4 按需加载的实现方式及原理详解
2017/05/25 Javascript
js实现每日签到功能
2018/11/29 Javascript
初学node.js中实现删除用户路由
2019/05/27 Javascript
关于layui的下拉搜索框异步加载数据的解决方法
2019/09/28 Javascript
VUEX-action可以修改state吗
2019/11/19 Javascript
[46:02]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第二局
2016/02/28 DOTA
python使用os模块的os.walk遍历文件夹示例
2014/01/27 Python
Python中操作MySQL入门实例
2015/02/08 Python
编写Python脚本来获取mp3文件tag信息的教程
2015/05/04 Python
使用Python的Bottle框架写一个简单的服务接口的示例
2015/08/25 Python
Pandas标记删除重复记录的方法
2018/04/08 Python
Kusmi茶美国官网:优质散叶茶和茶包
2019/10/13 全球购物
Woods官网:加拿大最古老、最受尊敬的户外品牌之一
2020/09/12 全球购物
最热门的自我评价
2013/12/30 职场文书
汽车制造与装配专业自荐信范文
2014/01/02 职场文书
小学生检讨书大全
2014/02/06 职场文书
春游踏青活动方案
2014/08/14 职场文书
公司总经理岗位职责
2015/04/01 职场文书
节约用电倡议书
2015/04/28 职场文书
Python实现生活常识解答机器人
2021/06/28 Python
在Python 中将类对象序列化为JSON
2022/04/06 Python
Python开发简易五子棋小游戏
2022/05/02 Python