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 相关文章推荐
ASP.NET jQuery 实例3 (在TextBox里面阻止复制、剪切和粘贴事件)
Jan 13 Javascript
js对文章内容进行分页示例代码
Mar 05 Javascript
浅析JavaScript动画
Jun 10 Javascript
ECMAScript6中Set/WeakSet详解
Jun 12 Javascript
详解JS面向对象编程
Jan 24 Javascript
用jmSlip编写移动端顶部日历选择控件
Oct 24 Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
Nov 24 Javascript
JS中from 表单序列化提交的代码
Jan 20 Javascript
JavaScript作用域链实例详解
Jan 21 Javascript
JavaScript实现的联动菜单特效示例
Jul 08 Javascript
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
May 27 Javascript
node中使用shell脚本的方法步骤
Mar 23 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
sqlyog 中文乱码问题的设置方法
2008/10/19 PHP
ThinkPHP采用模块和操作分析
2011/04/18 PHP
ThinkPHP3.1新特性之Action参数绑定
2014/06/19 PHP
PHP+mysql实现从数据库获取下拉树功能示例
2017/01/06 PHP
JS启动应用程序的一个简单例子
2008/05/11 Javascript
javascript表单验证 - Parsley.js使用和配置
2013/01/25 Javascript
js数字转换为float,取N位小数
2014/02/08 Javascript
jQuery获取checkboxlist的value值的方法
2015/09/27 Javascript
分享网页检测摇一摇实例代码
2016/01/14 Javascript
JS基于正则实现数字千分位用逗号分隔的方法
2017/06/16 Javascript
使用JavaScript开发跨平台的桌面应用详解
2017/07/27 Javascript
Javascript将图片的绝对路径转换为base64编码的方法
2018/01/11 Javascript
JavaScript DOM元素常见操作详解【添加、删除、修改等】
2018/05/09 Javascript
jQuery 实现倒计时天,时,分,秒功能
2018/07/31 jQuery
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
2019/09/02 Javascript
js中!和!!的区别与用法
2020/05/09 Javascript
解决vue的touchStart事件及click事件冲突问题
2020/07/21 Javascript
简单介绍Python中利用生成器实现的并发编程
2015/05/04 Python
Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)
2019/06/28 Python
Python 3.8正式发布重要新功能一览
2019/10/17 Python
flask 框架操作MySQL数据库简单示例
2020/02/02 Python
基于python 取余问题(%)详解
2020/06/03 Python
Pytorch 使用CNN图像分类的实现
2020/06/16 Python
Django crontab定时任务模块操作方法解析
2020/09/10 Python
探索HTML5本地存储功能运用技巧
2016/03/02 HTML / CSS
康帕斯酒店预订:Compass Hospitality(支持中文)
2018/08/23 全球购物
大学生冰淇淋店商业计划书
2014/01/14 职场文书
企业安全生产承诺书
2014/05/22 职场文书
秋季运动会广播稿(30篇)
2014/09/13 职场文书
介绍信模板
2015/01/31 职场文书
体育活动总结
2015/02/04 职场文书
教师节大会主持词
2015/07/06 职场文书
php7中停止php-fpm服务的方法详解
2021/05/09 PHP
详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)
2021/07/01 HTML / CSS
解决mysql的int型主键自增问题
2021/07/15 MySQL
纯html+css实现Element loading效果
2021/08/02 HTML / CSS