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下实现overlay遮罩层代码
Aug 25 Javascript
autoPlay 基于jquery的图片自动播放效果
Dec 07 Javascript
ASP.NET中AJAX 调用实例代码
May 03 Javascript
JavaScript获得指定对象大小的方法
Jul 01 Javascript
js+css实现有立体感的按钮式文字竖排菜单效果
Sep 01 Javascript
详解XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度
Sep 14 Javascript
js获取一组日期中最近连续的天数
May 25 Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
Dec 28 Javascript
微信小程序如何获取用户手机号
Jan 26 Javascript
vuex + axios 做登录验证 并且保存登录状态的实例
Sep 16 Javascript
vue 获取视频时长的实例代码
Aug 20 Javascript
微信小程序实现倒计时功能
Nov 19 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
DOTA2 1月28日更新:监管系统降临刀塔世界
2021/01/28 DOTA
如何写php程序?
2006/12/08 PHP
php array_map array_multisort 高效处理多维数组排序
2009/06/11 PHP
php gzip压缩输出的实现方法
2013/04/27 PHP
PHP分页类集锦
2014/11/18 PHP
PHP使用CURL模拟登录的方法
2015/07/08 PHP
php使用number_format函数截取小数的方法分析
2016/05/27 PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
2018/05/31 PHP
PHP+RabbitMQ实现消息队列的完整代码
2019/03/20 PHP
不间断滚动JS打包类,基本可以实现所有的滚动效果,太强了
2007/12/08 Javascript
javascript 对象比较实现代码
2009/04/27 Javascript
Span元素的width属性无效果原因及解决方案
2010/01/15 Javascript
Javascript中的delete介绍
2012/09/02 Javascript
一个JavaScript操作元素定位元素的实例
2014/10/29 Javascript
node.js中的emitter.on方法使用说明
2014/12/10 Javascript
BootStrap扔进Django里的方法详解
2016/05/13 Javascript
BootstrapValidator超详细教程(推荐)
2016/12/07 Javascript
express框架实现基于Websocket建立的简易聊天室
2017/08/10 Javascript
vue在手机中通过本机IP地址访问webApp的方法
2018/08/15 Javascript
vue3.0 CLI - 2.5 - 了解组件的三维
2018/09/14 Javascript
layui use 定义js外部引用函数的方法
2019/09/26 Javascript
Python实现的求解最大公约数算法示例
2018/05/03 Python
Selenium鼠标与键盘事件常用操作方法示例
2018/08/13 Python
对pandas中两种数据类型Series和DataFrame的区别详解
2018/11/12 Python
详解python websocket获取实时数据的几种常见链接方式
2019/07/01 Python
python实现高斯投影正反算方式
2020/01/17 Python
Backcountry旗下的户外商品闪购网站:steep&cheap
2016/09/22 全球购物
戴森比利时官方网站:Dyson BE
2020/10/03 全球购物
销售主管岗位职责
2014/02/08 职场文书
酒后驾车标语
2014/06/30 职场文书
设计师求职信
2014/07/01 职场文书
公司行政主管岗位职责
2015/04/09 职场文书
入团介绍人意见范文
2015/06/04 职场文书
2016新党章学习心得体会
2016/01/15 职场文书
优秀家长事迹材料(2016推荐版)
2016/02/29 职场文书
Pytest中skip和skipif的具体使用方法
2021/06/30 Python