基于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 相关文章推荐
json数据处理技巧(字段带空格、增加字段、排序等等)
Jun 14 Javascript
网页防止tab键的使用快速解决方法
Nov 07 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
Jan 23 Javascript
微信小程序 标签传入数据
May 08 Javascript
jQuery中的类名选择器(.class)用法简单示例
May 14 jQuery
jQuery实现的监听导航滚动置顶状态功能示例
Jul 23 jQuery
vue实现一个炫酷的日历组件
Oct 08 Javascript
vue项目前端错误收集之sentry教程详解
May 27 Javascript
koa+jwt实现token验证与刷新功能
May 30 Javascript
vue把输入框的内容添加到页面的实例讲解
Nov 11 Javascript
JavaScript随机数的组合问题案例分析
May 16 Javascript
JavaScript闭包原理与用法学习笔记
May 29 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
WAR3重制版DOTA 5V5初体验
2020/04/09 DOTA
谈谈新手如何学习PHP 默默经典版本
2009/08/04 PHP
PHP/ThinkPHP实现批量打包下载文件的方法示例
2017/07/31 PHP
laravel实现查询最后执行的一条sql语句的方法
2019/10/09 PHP
IE6与IE7中,innerHTML获取param的区别
2009/03/15 Javascript
提高网站性能之 如何对待JavaScript
2009/10/31 Javascript
实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
2013/01/11 Javascript
JavaScript splice()方法详解
2020/09/22 Javascript
javascript 函数及作用域总结介绍
2013/11/12 Javascript
JQuery.get提交页面不跳转的解决方法
2015/01/13 Javascript
js实现背景图片感应鼠标变化的方法
2015/02/28 Javascript
微信小程序实现下载进度条的方法
2017/12/08 Javascript
高性能的javascript之加载顺序与执行原理篇
2018/01/14 Javascript
利用jqgrid实现上移下移单元格功能
2018/11/07 Javascript
微信小程序动态评分展示/五角星展示/半颗星展示/自定义长度展示功能的实现
2020/07/22 Javascript
vue添加锚点,实现滚动页面时锚点添加相应的class操作
2020/08/10 Javascript
TensorFlow实现卷积神经网络
2018/05/24 Python
Python使用try except处理程序异常的三种常用方法分析
2018/09/05 Python
tensorflow estimator 使用hook实现finetune方式
2020/01/21 Python
手把手教你将Flask应用封装成Docker服务的实现
2020/08/19 Python
意大利简约的休闲品牌:Aspesi
2018/02/08 全球购物
美国保健品专家:Life Extension
2018/05/04 全球购物
Chupi官网:在爱尔兰手工制作的订婚、结婚戒指和精美珠宝
2020/09/28 全球购物
学前教育毕业生自荐信
2013/10/29 职场文书
校园文化建设方案
2014/02/03 职场文书
高中军训感言200字
2014/02/23 职场文书
经典商业广告词
2014/03/13 职场文书
初三开学计划书
2014/04/27 职场文书
测控技术自荐信
2014/06/05 职场文书
党员个人对照检查材料范文
2014/09/24 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
2014年便民服务中心工作总结
2014/12/20 职场文书
毕业典礼邀请函
2015/01/31 职场文书
课题研究阶段性总结
2015/08/13 职场文书
大学生党员暑假实践(活动总结)
2019/08/21 职场文书
PostgreSQL数据库创建并使用视图以及子查询
2022/04/11 PostgreSQL