JS实现弹性菜单效果代码


Posted in Javascript onSeptember 07, 2015

本文实例讲述了JS实现弹性菜单效果代码。分享给大家供大家参考。具体如下:

这是一款JavaScript+CSS实现弹性菜单——纯属自己写着练习,无使用第三方的类库,我觉得是值得学习前端设计的朋友参考的,有兴趣的朋友可以把弹性的菜单背景换成一个漂亮的图片,这样更漂亮了。

运行效果截图如下:

JS实现弹性菜单效果代码

在线演示地址如下:

具体代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Js实现菜单弹性菜单</title>
<style type="text/css">
body, ul, ol, dl, dt, dd, h1, h2, h3, h4, h5, p, form { padding: 0; margin: 0; }
li { list-style: none; }
img { border: 0; }
body { font-family: Arial; background: #fff url() repeat-x; }
#header { width: 960px; height: 107px; margin: 0 auto 12px; position: relative; }
#header h1 { padding-top: 15px; float: left; }
#header ul { height: 44px; position: absolute; right: 0; bottom: 0; }
#header .normal, #header .active { float: left; width: 88px; height: 44px; position: relative; z-index: 1; }
#header .normal a, #header .active a { float: left; width: 88px; height: 44px; line-height: 44px; text-align: center; text-decoration: none; font-size: 14px; font-weight: bold; }
#header .active a { color: #fff; }
#header .normal a { color: #999; }
#btn_bg { width: 88px; height: 44px; background: #fb2347 url(); position: absolute; overflow:hidden; left: 608px; bottom: 0; z-index: 2; }
#btn_bg ul { width: 528px; left:-176px; position:absolute; }
</style>
<script type="text/javascript">
var away;
window.onload=function()
{
 var odiv=document.getElementById("btn_bg");
 var oul=odiv.getElementsByTagName("ul")[0];
 var oli=document.getElementById("header").getElementsByTagName("ul")[0].getElementsByTagName("li");
 var i=0;
 for(i=0;i<oli.length;i++)
 {
  oli[i].index=i;
  oli[i].onmouseover=function()
  {
   away=432+88*this.index;
   menuInterval(); 
  };
 };
}
var timer=null;
function menuInterval()
{
 if(timer)
 {
  clearInterval(timer);
 }
 timer=setInterval(menuMove, 30);
}
var step=0;
var l=0;
function menuMove()
{
 var odiv=document.getElementById("btn_bg");
 var oul=odiv.getElementsByTagName("ul")[0];
  step+=(away-odiv.offsetLeft)/10;
  step=step*0.78;
 l=parseInt(odiv.offsetLeft+step);
 odiv.style.left=l+"px";
 oul.style.left=-l+432+"px";;
}
</script>
</head>
<body>
<div id="header">
 <ul>
 <li class="normal"><a href="#">首页</a></li>
 <li class="normal"><a href="#">叶子课程</a></li>
 <li class="normal"><a href="#">叶子资源</a></li>
 <li class="normal"><a href="#">留言</a></li>
 <li class="normal"><a href="#">叶子博客</a></li>
 <li class="normal"><a href="#">联系叶子</a></li>
 </ul>
 <div id="btn_bg">
  <ul>
  <li class="active"><a href="#">首页</a></li>
  <li class="active"><a href="#">叶子课程</a></li>
  <li class="active"><a href="#">叶子资源</a></li>
  <li class="active"><a href="#">留言</a></li>
  <li class="active"><a href="#">叶子博客</a></li>
  <li class="active"><a href="#">联系叶子</a></li>
  </ul>
 </div>
</div>
</body>
</html>

希望本文所述对大家的JavaScript程序设计有所帮助。

Javascript 相关文章推荐
js滚动条多种样式,推荐
Feb 05 Javascript
清华大学出版的事半功倍系列 javascript全部源代码
May 04 Javascript
深入理解JavaScript系列(16) 闭包(Closures)
Apr 12 Javascript
String.prototype实现的一些javascript函数介绍
Nov 22 Javascript
Javascript基础教程之数据类型转换
Jan 18 Javascript
深入探寻seajs的模块化与加载方式
Apr 14 Javascript
js实现select跳转菜单新窗口效果代码分享(超简单)
Aug 21 Javascript
AngularJS 如何在控制台进行错误调试
Jun 07 Javascript
BootStrap Fileinput初始化时的一些参数
Dec 30 Javascript
angular2中使用第三方js库的实例
Feb 26 Javascript
Nuxt项目支持eslint+pritter+typescript的实现
May 20 Javascript
Node.js利用Express实现用户注册登陆功能(推荐)
Oct 26 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
Sep 07 #Javascript
jquery实现标题字体变换的滑动门菜单效果
Sep 07 #Javascript
关于JS中prototype的理解
Sep 07 #Javascript
js+css实现超简洁的二级下拉菜单效果代码
Sep 07 #Javascript
jquery实现简单的二级导航下拉菜单效果
Sep 07 #Javascript
jQuery平滑旋转幻灯片特效代码分享
Sep 07 #Javascript
js调用百度地图及调用百度地图的搜索功能
Sep 07 #Javascript
You might like
PHP实现删除非站内外部链接实例代码
2014/06/17 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
2016/05/20 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
phpstudy2020搭建站点的实现示例
2020/10/30 PHP
对象特征检测法判断浏览器对javascript对象的支持
2009/07/25 Javascript
Javascript匿名函数的一种应用 代码封装
2010/06/27 Javascript
使用JavaScript构建JSON格式字符串实现步骤
2013/03/22 Javascript
禁用页面部分JavaScript不是全部而是部分
2014/09/03 Javascript
JS实现灵巧的下拉导航效果代码
2015/08/25 Javascript
基于jQuery倾斜打开侧边栏菜单特效代码
2015/09/15 Javascript
详解AngularJS中$http缓存以及处理多个$http请求的方法
2016/02/06 Javascript
jquery插件Jplayer使用方法简析
2016/04/22 Javascript
jquery mobile 实现自定义confirm确认框效果的简单实例
2016/06/17 Javascript
AngularJs 指令详解及示例代码
2016/09/01 Javascript
web前端开发upload上传头像js示例代码
2016/10/22 Javascript
基于jquery实现的银行卡号每隔4位自动插入空格的实现代码
2016/11/22 Javascript
JS实现快速比较两个字符串中包含有相同数字的方法
2017/09/11 Javascript
对类Vue的MVVM前端库的实现代码
2018/09/07 Javascript
微信小程序wx:for循环的实例详解
2018/10/07 Javascript
详解Vue.js自定义tipOnce指令用法实例
2018/12/19 Javascript
vuex页面刷新后数据丢失的方法
2019/01/17 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
2019/09/21 Javascript
vue组件内部引入外部js文件的方法
2020/01/18 Javascript
使用JavaScript通过前端发送电子邮件
2020/05/22 Javascript
javascript的hashCode函数实现代码小结
2020/08/11 Javascript
Python中的高级数据结构详解
2015/03/27 Python
进一步了解Python中的XML 工具
2015/04/13 Python
Django中信号signals的简单使用方法
2019/07/04 Python
python elasticsearch从创建索引到写入数据的全过程
2019/08/04 Python
django-利用session机制实现唯一登录的例子
2020/03/16 Python
在jupyter notebook 添加 conda 环境的操作详解
2020/04/10 Python
在keras中实现查看其训练loss值
2020/06/16 Python
Dillard’s百货官网:Dillards.com
2018/05/26 全球购物
仓库管理专业个人自我评价范文
2013/11/11 职场文书
涉密人员保密承诺书
2014/05/28 职场文书
电气工程及其自动化专业毕业生自荐信
2014/06/21 职场文书