基于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 相关文章推荐
鼠标移动到一张图片时变为另一张图片
Dec 05 Javascript
Javascript 倒计时源代码.(时.分.秒) 详细注释版
May 09 Javascript
JS获取鼠标坐标的实例方法
Jul 18 Javascript
jQuery实现Tab菜单滚动切换的方法
Sep 21 Javascript
JavaScript 模块的循环加载实现方法
Dec 13 Javascript
jQuery EasyUi实战教程之布局篇
Jan 26 Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
May 04 Javascript
javascript实现数字配对游戏的实例讲解
Dec 14 Javascript
[jQuery] 事件和动画详解
Mar 05 jQuery
JS实现网站吸顶条
Jan 08 Javascript
小程序中设置缓存过期的实现方法
Jan 14 Javascript
JS面向对象编程基础篇(一) 对象和构造函数实例详解
Mar 03 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
DOTA2 探索永无止境 玩家自创强悍插眼攻略
2020/04/20 DOTA
关于PHP结束标签的使用细节探讨及联想
2013/03/04 PHP
PHP实现获取文件后缀名的几种常用方法
2015/08/08 PHP
golang与PHP输出excel示例
2016/07/22 PHP
php微信开发接入
2016/08/27 PHP
PHP表单验证内容是否为空的实现代码
2016/11/14 PHP
JQuery AJAX实现目录浏览与编辑的代码
2008/10/21 Javascript
Jquery调用webService远程访问出错的解决方法
2010/05/21 Javascript
JQuery实现简单验证码提示解决方案
2012/12/20 Javascript
js随机生成网页背景颜色的方法
2015/02/26 Javascript
javascript用函数实现对象的方法
2015/05/14 Javascript
详解JavaScript对Date对象的操作问题(生成一个倒数7天的数组)
2015/10/01 Javascript
Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果
2016/05/27 Javascript
让nodeJS支持ES6的词法----babel的安装和使用方法
2017/07/31 NodeJs
从vue源码看props的用法
2019/01/09 Javascript
浅谈发布订阅模式与观察者模式
2019/04/09 Javascript
原生js实现each方法实例代码详解
2019/05/27 Javascript
微信小程序发布新版本时自动提示用户更新的方法
2019/06/07 Javascript
javascript实现的时间格式加8小时功能示例
2019/06/13 Javascript
Python 中urls.py:URL dispatcher(路由配置文件)详解
2017/03/24 Python
python with提前退出遇到的坑与解决方案
2018/01/05 Python
python dataframe向下向上填充,fillna和ffill的方法
2018/11/28 Python
python打包exe开机自动启动的实例(windows)
2019/06/28 Python
Python企业编码生成系统总体系统设计概述
2019/07/26 Python
Python程序暂停的正常处理方法
2019/11/07 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
2019/12/09 Python
tensorflow实现二维平面模拟三维数据教程
2020/02/11 Python
python 字符串格式化的示例
2020/09/21 Python
HTML5学习笔记之History API
2015/02/26 HTML / CSS
使用HTML5的表单验证的简单示例
2015/09/09 HTML / CSS
捷克厨房用品购物网站:Tescoma
2018/07/13 全球购物
Nike意大利官网:Nike.com IT
2020/01/19 全球购物
浙江文明网签名寄语
2014/01/18 职场文书
一年级评语大全
2014/04/23 职场文书
优秀教师自我评价范文
2014/09/27 职场文书
详解nginx location指令
2022/01/18 Servers