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 相关文章推荐
jquery text()要注意啦
Oct 30 Javascript
开发插件的两个方法jquery.fn.extend与jquery.extend
Nov 21 Javascript
Document.location.href和.replace的区别示例介绍
Mar 04 Javascript
JavaScript中对象属性的添加和删除示例
May 12 Javascript
JavaScript使用concat连接数组的方法
Apr 06 Javascript
浅谈javascript中的闭包
May 13 Javascript
jquery任意位置浮动固定层插件用法实例
May 29 Javascript
使用requestAnimationFrame实现js动画性能好
Aug 06 Javascript
JavaScript交换两个变量值的七种解决方案
Dec 01 Javascript
Angular4 中常用的指令入门总结
Jun 12 Javascript
Javascript中弹窗confirm与prompt的区别
Oct 26 Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
Nov 20 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 和 HTML
2006/10/09 PHP
PHP简介
2006/10/09 PHP
php中对2个数组相加的函数
2011/06/24 PHP
Zend Framework页面缓存实例
2014/06/25 PHP
Laravel用户授权系统的使用方法示例
2018/09/16 PHP
php时间戳转换代码详解
2019/08/04 PHP
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
js文件Cookie存取值示例代码
2014/02/20 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
实现网页页面跳转的几种方法(meta标签、js实现、php实现)
2014/05/20 Javascript
jquery控制页面部分刷新的方法
2015/06/24 Javascript
JavaScript 七大技巧(一)
2015/12/13 Javascript
Nodejs高扩展性的模板引擎 functmpl简介
2017/02/13 NodeJs
JS实现的添加弹出层并完成锁屏操作示例
2017/04/07 Javascript
jQuery实现一个简单的验证码功能
2017/06/26 jQuery
vue+elementUI 实现内容区域高度自适应的示例
2020/09/26 Javascript
Python异常处理总结
2014/08/15 Python
Python实现读取字符串按列分配后按行输出示例
2018/04/17 Python
Python处理菜单消息操作示例【基于win32ui模块】
2018/05/09 Python
Python正则表达式指南 推荐
2018/10/09 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
2018/10/14 Python
对Python3 pyc 文件的使用详解
2019/02/16 Python
Pyecharts绘制全球流向图的示例代码
2020/01/08 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
2020/05/15 Python
基于Html5 canvas实现裁剪图片和马赛克功能及又拍云上传图片 功能
2019/07/09 HTML / CSS
施华洛世奇中国官网:SWAROVSKI中国
2020/06/16 全球购物
中职应届生会计求职信
2013/10/23 职场文书
会计岗位描述
2014/02/22 职场文书
中国梦演讲稿教师篇
2014/04/23 职场文书
生物科学专业毕业生求职信
2014/06/02 职场文书
庆七一晚会主持词
2015/06/30 职场文书
大学学生会竞选稿
2015/11/19 职场文书
2016年“七一建党节”广播稿
2015/12/18 职场文书
Python机器学习之底层实现KNN
2021/06/20 Python
MySQL 表锁定 LOCK和UNLOCK TABLES的 SQL语法
2022/04/18 MySQL
Python实现简单得递归下降Parser
2022/05/02 Python