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 相关文章推荐
Prototype使用指南之array.js
Jan 10 Javascript
js字符串的各种格式的转换 ToString,Format
Aug 08 Javascript
require.js深入了解 require.js特性介绍
Sep 04 Javascript
node.js中的http.request方法使用说明
Dec 14 Javascript
详解Angularjs filter过滤器
Feb 06 Javascript
JS常见疑难点分析之match,charAt,charCodeAt,map,search用法分析
Dec 25 Javascript
JavaScript基于replace+正则实现ES6的字符串模版功能
Apr 25 Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
May 12 Javascript
angular4实现tab栏切换的方法示例
Oct 21 Javascript
vue表单数据交互提交演示教程
Nov 13 Javascript
vue实现pdf文档在线预览功能
Nov 26 Javascript
vue绑定class的三种方法
Dec 24 Vue.js
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标签实现代码(支持嵌套和就近闭合)
2012/06/07 PHP
解析php中获取url与物理路径的总结
2013/06/21 PHP
php使用json_encode对变量json编码
2014/04/07 PHP
PHP计算当前坐标3公里内4个角落的最大最小经纬度实例
2016/02/26 PHP
tp5递归 无限级分类详解
2019/10/18 PHP
prototype 源码中文说明之 prototype.js
2006/09/22 Javascript
JavaScript与函数式编程解释
2007/04/27 Javascript
AngularJS模仿Form表单提交的实现代码
2016/12/08 Javascript
微信小程序js文件改变参数并在视图上及时更新【推荐】
2018/06/11 Javascript
vue生成文件本地打开查看效果的实例
2018/09/06 Javascript
移动端自适应flexible.js的使用方法(不用三大框架,仅写一个单html页面使用)推荐
2019/04/02 Javascript
解决Vue打包上线之后部分CSS不生效的问题
2019/11/12 Javascript
微信小程序实现音频文件播放进度的实例代码
2020/03/02 Javascript
ES5新增数组的实现方法
2020/05/12 Javascript
微信小程序实现点击生成随机验证码
2020/09/09 Javascript
Vue单页面应用中实现Markdown渲染
2021/02/14 Vue.js
[01:06:43]完美世界DOTA2联赛PWL S3 PXG vs GXR 第二场 12.19
2020/12/24 DOTA
分享一个常用的Python模拟登陆类
2015/03/29 Python
python如何使用unittest测试接口
2018/04/04 Python
Python用csv写入文件_消除空余行的方法
2018/07/06 Python
Python3中在Anaconda环境下安装basemap包
2018/10/21 Python
Python基于mysql实现学生管理系统
2019/02/21 Python
Python基础学习之函数方法实例详解
2019/06/18 Python
python处理document文档保留原样式
2019/09/23 Python
python中添加模块导入路径的方法
2021/02/03 Python
美国体育用品商店:Rally House(NCAA、NFL、MLB、NBA、NHL和MLS)
2018/01/03 全球购物
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
荣耀俄罗斯官网:HONOR俄罗斯
2020/10/31 全球购物
农民入党思想汇报
2014/01/03 职场文书
九年级体育教学反思
2014/01/23 职场文书
纺织工程专业推荐信
2014/09/08 职场文书
2014财务人员自我评价范文
2014/09/21 职场文书
党支部书记岗位职责
2015/02/15 职场文书
2015年小学教科研工作总结
2015/07/20 职场文书
团委副书记工作总结
2015/08/14 职场文书
python自动化操作之动态验证码、滑动验证码的降噪和识别
2021/08/30 Python