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 相关文章推荐
parseInt parseFloat js字符串转换数字
Aug 01 Javascript
30个最好的jQuery 灯箱插件分享
Apr 25 Javascript
Query中click(),bind(),live(),delegate()的区别
Nov 19 Javascript
jQuery实现可收缩展开的级联菜单实例代码
Nov 27 Javascript
JavaScript字符串对象split方法入门实例(用于把字符串分割成数组)
Oct 16 Javascript
jquery实现选中单选按钮下拉伸缩效果
Aug 06 Javascript
jQuery实现横向带缓冲的水平运动效果(附demo源码下载)
Jan 29 Javascript
vue-router实现tab标签页(单页面)详解
Oct 17 Javascript
React和Vue中监听变量变化的方法
Nov 14 Javascript
微信小程序实现富文本图片宽度自适应的方法
Jan 20 Javascript
关于layui时间回显问题的解决方法
Sep 24 Javascript
jQuery插件simplePagination的使用方法示例
Apr 28 jQuery
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实现Mysql简易操作类
2015/10/11 PHP
PHPExcel导出2003和2007的excel文档功能示例
2017/01/04 PHP
(function(){})()的用法与优点
2007/03/11 Javascript
ko knockoutjs动态属性绑定技巧应用
2012/11/14 Javascript
div浮层,滚动条移动,位置保持不变的4种方法汇总
2013/12/11 Javascript
js中settimeout方法加参数的使用实例
2014/02/27 Javascript
JavaScript中按位“异或”运算符使用介绍
2014/03/14 Javascript
前端必备神器 Snap.svg 弹动效果
2014/11/10 Javascript
AngularJs html compiler详解及示例代码
2016/09/01 Javascript
Vue.js中数组变动的检测详解
2016/10/12 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
2017/03/17 Javascript
Vue2组件tree实现无限级树形菜单
2017/03/29 Javascript
深入解析Vue 组件命名那些事
2017/07/18 Javascript
详解小程序设置缓存并且不覆盖原有数据
2019/04/15 Javascript
python动态监控日志内容的示例
2014/02/16 Python
全面了解Python环境配置及项目建立
2016/06/30 Python
在 Python 应用中使用 MongoDB的方法
2017/01/05 Python
Python中如何优雅的合并两个字典(dict)方法示例
2017/08/09 Python
老生常谈Python startswith()函数与endswith函数
2017/09/08 Python
Python创建普通菜单示例【基于win32ui模块】
2018/05/09 Python
5分钟 Pipenv 上手指南
2018/12/20 Python
在PyCharm中批量查找及替换的方法
2019/01/20 Python
python五子棋游戏的设计与实现
2019/06/18 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
2020/04/13 Python
keras做CNN的训练误差loss的下降操作
2020/06/22 Python
Python爬虫之Selenium设置元素等待的方法
2020/12/04 Python
CSS3实现图片抽屉式效果的示例代码
2019/11/06 HTML / CSS
攀岩、滑雪、徒步旅行装备:Black Diamond Equipment
2019/08/16 全球购物
入党积极分子思想汇报范文
2014/01/05 职场文书
建筑投标担保书
2014/05/20 职场文书
经营理念标语
2014/06/21 职场文书
离婚协议书格式
2014/11/21 职场文书
服装店员工管理制度
2015/08/07 职场文书
Go语言实现Snowflake雪花算法
2021/06/08 Golang
MySQL连表查询分组去重的实现示例
2021/07/01 MySQL
python创建字典及相关管理操作
2022/04/13 Python