基于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 相关文章推荐
jQuery 性能优化指南(3)
May 21 Javascript
解决js数据包含加号+通过ajax传到后台时出现连接错误
Aug 01 Javascript
Javascript玩转继承(二)
May 08 Javascript
JavaScript中的迭代器和生成器详解
Oct 29 Javascript
举例详解Python中smtplib模块处理电子邮件的使用
Jun 24 Javascript
自定义刻度jQuery进度条及插件
Sep 02 Javascript
基于zepto.js简单实现上传图片
Jun 21 Javascript
angularJs关于指令的一些冷门属性详解
Oct 24 Javascript
vue2.0 下拉框默认标题设置方法
Aug 22 Javascript
layUI使用layer.open,在content打开数据表格,获取值并返回的方法
Sep 26 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
Jul 10 Javascript
一起来看看Vue的核心原理剖析
Mar 24 Vue.js
使用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
解析dedecms空间迁移步骤详解
2013/05/15 PHP
php修改上传图片尺寸的方法
2015/04/14 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
2016/01/19 PHP
PHP编译configure时常见错误的总结
2017/08/17 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
jquery 日期分离成年月日的代码
2010/05/14 Javascript
如何用js控制frame的隐藏或显示的解决办法
2013/03/20 Javascript
Select标签下拉列表二级联动级联实例代码
2014/02/07 Javascript
js打开新窗口方法整理
2014/02/17 Javascript
node.js Web应用框架Express入门指南
2014/05/28 Javascript
JS实现5秒钟自动封锁div层的方法
2015/02/20 Javascript
javascript+canvas实现刮刮卡抽奖效果
2015/07/29 Javascript
Javascript使用post方法提交数据实例
2015/08/03 Javascript
JS实现的验证身份证及获取地区功能示例
2017/01/16 Javascript
nodejs个人博客开发第一步 准备工作
2017/04/12 NodeJs
基于LayUI实现前端分页功能的方法
2017/07/22 Javascript
vue使用xe-utils函数库的具体方法
2018/03/06 Javascript
vue项目中api接口管理总结
2018/04/20 Javascript
react-navigation之动态修改title的内容
2018/09/26 Javascript
关于React动态加载路由处理的相关问题
2019/01/07 Javascript
微信小程序仿淘宝热搜词在搜索框中轮播功能
2020/01/21 Javascript
Python实现小数转化为百分数的格式化输出方法示例
2017/09/20 Python
Anaconda2 5.2.0安装使用图文教程
2018/09/19 Python
Pandas之ReIndex重新索引的实现
2019/06/25 Python
PYQT5实现控制台显示功能的方法
2019/06/25 Python
pandas中的series数据类型详解
2019/07/06 Python
如何基于Python创建目录文件夹
2019/12/31 Python
tensorflow mnist 数据加载实现并画图效果
2020/02/05 Python
Django中的DateTimeField和DateField实现
2021/02/24 Python
全球最大的游戏市场:G2A
2018/07/05 全球购物
师范大学生求职信
2014/06/13 职场文书
小学学习雷锋活动总结
2014/07/03 职场文书
主持人开场白台词
2015/05/29 职场文书
劳保用品管理制度范本
2015/08/06 职场文书
Redis 限流器
2022/05/15 Redis
Java多线程并发FutureTask使用详解
2022/06/28 Java/Android