基于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 相关文章推荐
JS连接SQL数据库与ACCESS数据库的方法实例
Nov 21 Javascript
JavaScript生成随机字符串的方法
Mar 19 Javascript
jquery ajax分页插件的简单实现
Jan 27 Javascript
jQuery+CSS实现简单切换菜单示例
Jul 27 Javascript
Web 开发中Ajax的Session 超时处理方法
Jan 19 Javascript
jQuery监听浏览器窗口大小的变化实例
Feb 07 Javascript
bootstrap插件treeview实现全选父节点下所有子节点和反选功能
Jul 21 Javascript
seajs中模块依赖的加载处理实例分析
Oct 10 Javascript
vue实现手机号码抽奖上下滚动动画示例
Oct 18 Javascript
js实现上传并压缩图片效果
Jan 10 Javascript
jquery拖拽自动排序插件使用方法详解
Jul 20 jQuery
送你43道JS面试题(收藏)
Jun 17 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
php合并js请求的例子
2013/11/01 PHP
浅谈php自定义错误日志
2015/02/13 PHP
php函数重载的替代方法--伪重载详解
2015/05/08 PHP
PHP中Array相关函数简介
2016/07/03 PHP
Yii框架日志记录Logging操作示例
2018/07/12 PHP
PHP常用正则表达式精选(推荐)
2019/05/28 PHP
基于jquery的复制网页内容到WORD的实现代码
2011/02/16 Javascript
javascript贪吃蛇完整版(源码)
2013/12/09 Javascript
js中的内部属性与delete操作符介绍
2015/08/10 Javascript
js实现类似MSN提示的页面效果代码分享
2015/08/24 Javascript
Node.js操作Firebird数据库教程
2016/03/04 Javascript
javascript js 操作数组 增删改查的简单实现
2016/06/20 Javascript
jQuery中Datatables增加跳转到指定页功能
2017/02/08 Javascript
VUE前端cookie简单操作
2017/10/17 Javascript
opencv 识别微信登录验证滑动块位置
2018/08/07 Javascript
js拖动滑块和点击水波纹效果实例代码
2018/10/16 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
vue百度地图 + 定位的详解
2019/05/13 Javascript
[09:22]2014DOTA2西雅图国际邀请赛 主赛事第二日TOPPLAY
2014/07/21 DOTA
[43:03]完美世界DOTA2联赛PWL S2 PXG vs Magma 第二场 11.21
2020/11/24 DOTA
python 获取et和excel的版本号
2009/04/09 Python
MySQL适配器PyMySQL详解
2017/09/20 Python
详解Python if-elif-else知识点
2018/06/11 Python
python+selenium实现自动化百度搜索关键词
2019/06/03 Python
Python Django基础二之URL路由系统
2019/07/18 Python
如何运行带参数的python脚本
2019/11/15 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
2021/01/19 Python
英国独特礼物想法和个性化礼物网站:notonthehighstreet.com
2018/04/16 全球购物
德国50岁以上交友网站:Lebensfreunde
2020/03/18 全球购物
运动会广播稿60字
2014/01/15 职场文书
社区党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
普通党员个人整改措施
2014/10/27 职场文书
房屋分割离婚协议书范本
2014/12/01 职场文书
幼儿园学前班幼儿评语
2014/12/29 职场文书
2015年五四青年节活动总结
2015/02/10 职场文书
浅谈Redis跟MySQL的双写问题解决方案
2022/02/24 Redis