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 相关文章推荐
javascript 学习之旅 (3)
Feb 05 Javascript
JavaScript 学习笔记(九)call和apply方法
Jan 11 Javascript
Extjs Ext.MessageBox.confirm 确认对话框详解
Apr 02 Javascript
jquery随机展示头像代码
Dec 21 Javascript
Package.js  现代化的JavaScript项目make工具
May 23 Javascript
javascript运算符语法全面概述
Jul 14 Javascript
bootstrap datepicker 与bootstrapValidator同时使用时选择日期后无法正常触发校验的解决思路
Sep 28 Javascript
js实现页面刷新滚动条位置不变
Nov 27 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
Jun 27 Javascript
ES6 Promise对象概念及用法实例详解
Oct 15 Javascript
vue中父子组件传值,解决钩子函数mounted只运行一次的操作
Jul 27 Javascript
小程序实现文字循环滚动动画
Jun 14 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桌面中心(四) 数据显示
2007/03/11 PHP
phpmyadmin MySQL 加密配置方法
2009/07/05 PHP
PHP XML数据解析代码
2010/05/26 PHP
PHP处理Oracle的CLOB实例
2014/11/03 PHP
简单实用的PHP防注入类实例
2014/12/05 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
2016/03/18 PHP
Yii框架组件的事件机制原理与用法分析
2020/04/07 PHP
HR vs CL BO3 第一场 2.13
2021/03/10 DOTA
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
2011/09/20 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
ReactNative-JS 调用原生方法实例代码
2016/10/08 Javascript
详解如何较好的使用js
2016/12/16 Javascript
Ajax和Comet技术总结
2017/02/19 Javascript
vue 子组件向父组件传值方法
2018/02/26 Javascript
详解javascript 变量提升(Hoisting)
2019/03/12 Javascript
vue element ui validate 主动触发错误提示操作
2020/09/21 Javascript
详解javascript脚本何时会被执行
2021/02/05 Javascript
Python内置数据类型详解
2014/08/18 Python
Python编写百度贴吧的简单爬虫
2015/04/02 Python
Python实现将Excel转换为json的方法示例
2017/08/05 Python
python 运用Django 开发后台接口的实例
2018/12/11 Python
Python对象与引用的介绍
2019/01/24 Python
python实现顺时针打印矩阵
2019/03/02 Python
Python IDE环境之 新版Pycharm安装详细教程
2020/03/05 Python
Windows 下python3.8环境安装教程图文详解
2020/03/11 Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
2020/07/03 Python
使用HTML5的File实现base64和图片的互转
2013/08/01 HTML / CSS
信息服务专业毕业生求职信
2014/03/02 职场文书
婚礼主持词开场白
2014/03/13 职场文书
大学生村官演讲稿
2014/04/25 职场文书
2014年个人委托书范本
2014/10/13 职场文书
收款委托书
2014/10/14 职场文书
金秋助学感谢信
2015/01/21 职场文书
2015年高三年级组工作总结
2015/07/21 职场文书
Python中的程序流程控制语句
2022/02/24 Python
spring注解 @PropertySource配置数据源全流程
2022/03/25 Java/Android