javascript简单实现滑动菜单效果的方法


Posted in Javascript onJuly 27, 2015

本文实例讲述了javascript简单实现滑动菜单效果的方法。分享给大家供大家参考。具体如下:

整个javascript代码共42行,其中主要函数Slide代码26行,可以改进哦!

<!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>滑动菜单</title>
<style>
a,body,div,h1,h2,li,ul{
  margin:0;
  padding:0
}
a{display:block;text-decoration:none;height:25px;color:#456;background-color:#ABC;cursor:pointer;}
a:hover{color:#123;background-color:#789;font-weight:bold;}
body{
  font:12px/18px "Times New Roman",Times,"宋体",serif;
  text-align:center;
}
h1{
  height:100px;
  width:25px;
  position:absolute;
  top:-1px;
  left:123px;
  cursor:pointer;
  color:#89A;
  font-size:18px; 
  line-height:50px;
  background-color:#234;
}
h2{
  height:24px;
  font-size:12px;
  border-bottom:1px solid #4C6CB9;
  color:#BBB;
  font-weight:600;
  cursor:pointer;
}
li{height:25px;list-style:none}
#Container{width:800px;background-color:#DDD;border: 1px solid #999;margin:10px auto}
#Top{height:30px;background-color:#DDD;border: 1px solid #999;}
#Logo{height:100px;background-color:#DDD;border: 1px solid #999;}
#Nav{height:30px;background-color:#DDD;border: 1px solid #999;}
#SideBar{
  position:fixed!important;
  position:absolute;
  top:200px;
  left:0px;
}
#SideBar a,#SideBar h2,#SideBar li,#SideBar ul{width:120px}
#Main{height:800px;background-color:#DDD;border: 1px solid #999;}
#Footer{height:60px;background-color:#DDD;border: 1px solid #999;}
.Extracted{width:0px;}
.Extrended{border:1px solid #555;background-color:#000;padding:1px}
</style>
</head>
<body>
<div id="Container">
  <div id="Top">顶条</div>
  <div id="Logo">Logo</div>
  <div id="Nav">导航条</div>
  <div id="SideBar" class="Extrended">
    <h1>菜单</h1>
    <ul>
      <h2>功能栏1</h2>
      <li><a href="">功能1</a></li>
      <li><a href="">功能2</a></li>
      <li><a href="">功能3</a></li>
      <li><a href="">功能4</a></li>
      <li><a href="">功能5</a></li>
    </ul>
    <ul>
      <h2>功能栏2</h2>
      <li><a href="">功能1</a></li>
      <li><a href="">功能2</a></li>
      <li><a href="">功能3</a></li>
      <li><a href="">功能4</a></li>
      <li><a href="">功能5</a></li>
    </ul>
    <ul>
      <h2>功能栏3</h2>
      <li><a href="">功能1</a></li>
      <li><a href="">功能2</a></li>
      <li><a href="">功能3</a></li>
      <li><a href="">功能4</a></li>
      <li><a href="">功能5</a></li>
    </ul>
    <ul>
      <h2>功能栏4</h2>
      <li><a href="">功能1</a></li>
      <li><a href="">功能2</a></li>
      <li><a href="">功能3</a></li>
      <li><a href="">功能4</a></li>
      <li><a href="">功能5</a></li>
    </ul>
    <ul>
      <h2>功能栏5</h2>
      <li><a href="">功能1</a></li>
      <li><a href="">功能2</a></li>
      <li><a href="">功能3</a></li>
      <li><a href="">功能4</a></li>
      <li><a href="">功能5</a></li>
    </ul>
    <ul>
      <h2>功能栏6</h2>
      <li><a href="">功能1</a></li>
      <li><a href="">功能2</a></li>
      <li><a href="">功能3</a></li>
      <li><a href="">功能4</a></li>
      <li><a href="">功能5</a></li>
    </ul>
  </div>
  <div id="Main">内容区</div>
  <div id="Footer">底条</div>
</div>
<script type="text/javascript">
function $(e){return document.getElementById(e)}
function Slide(Element,Mod){
  var LongthMax,LongthMin,Property,Count=25,Accum,ID,Dlt,DltDlt;
  if(Mod){
    Property='left';
    LongthMax=0;
    LongthMin=-124;
  }
  else{
    Property='height';
    LongthMax=Element.children.length*25;
    LongthMin=25;
  }
  DltDlt=(LongthMax-LongthMin)/(Count*5);
  if(Element.style[Property]==LongthMax+'px')DltDlt=-DltDlt;
  Accum=parseInt(Element.style[Property]);
  Dlt=7*DltDlt;
  ID=setInterval(function(){
    if(Count--){
      if(!(Count%5))Dlt-=DltDlt;
      Accum+=Dlt;
      Element.style[Property]=Math.floor(Accum)+'px';
      return
    }
    clearInterval(ID);
    Element.style[Property]=(DltDlt>0)? LongthMax+'px':LongthMin+'px';
  },20);
}
$('SideBar').style.left='0px';
$('SideBar').children[0].onclick=function(){
  Slide(this.parentNode,1);
};
(function(Menu,i,tmp){
  Menu=document.getElementsByTagName('ul');
  for(i=Menu.length;i--;){
    tmp=Menu[i];
    tmp.style.overflow='hidden';
    tmp.style.height='25px';
    tmp.children[0].onclick=function(){
      Slide(this.parentNode,0);
    };
  }
}());
</script>
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
用Jquery重写windows.alert方法实现思路
Apr 03 Javascript
table行随鼠标移动变色示例
May 07 Javascript
JS创建对象的写法示例
Nov 04 Javascript
网络传输协议(http协议)
Nov 18 Javascript
JS正则表达式学习之贪婪和非贪婪模式实例总结
Dec 26 Javascript
javascript中this用法实例详解
Apr 06 Javascript
JavaScript寄生组合式继承实例详解
Jan 06 Javascript
利用Electron简单撸一个Markdown编辑器的方法
Jun 10 Javascript
vue和iview实现Scroll 数据无限滚动功能
Oct 31 Javascript
JS实现购物车基本功能
Nov 08 Javascript
让Vue响应Map或Set的变化操作
Nov 11 Javascript
JS 4个超级实用的小技巧 提升开发效率
Oct 05 Javascript
JavaScript判断IE版本型号
Jul 27 #Javascript
javascript通过获取html标签属性class实现多选项卡的方法
Jul 27 #Javascript
readonly和disabled属性的区别
Jul 26 #Javascript
javascript实现继承的简单实例
Jul 26 #Javascript
IE10中flexigrid无法显示数据的解决方法
Jul 26 #Javascript
javascript实现将文件保存到本地方法汇总
Jul 26 #Javascript
javascript获取当前的时间戳的方法汇总
Jul 26 #Javascript
You might like
JS时间选择器 兼容IE6,7,8,9
2012/06/26 Javascript
JavaScript 盒模型 尺寸深入理解
2012/12/31 Javascript
BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
2014/10/29 Javascript
web 前端常用组件之Layer弹出层组件
2016/09/22 Javascript
jQuery加密密码到cookie的实现代码
2017/04/18 jQuery
JS按条件 serialize() 对应标签的使用方法
2017/07/24 Javascript
jsTree事件和交互以及插件plugins详解
2017/08/29 Javascript
react-router v4如何使用history控制路由跳转详解
2018/01/09 Javascript
vue-resource请求实现http登录拦截或者路由拦截的方法
2018/07/11 Javascript
Vue Element 分组+多选+可搜索Select选择器实现示例
2018/07/23 Javascript
微信小程序中使用wxss加载图片并实现动画效果
2018/08/13 Javascript
vue2中使用sass并配置全局的sass样式变量的方法
2018/09/04 Javascript
iview在vue-cli3如何按需加载的方法
2018/10/31 Javascript
如何优雅地在vue中添加权限控制示例详解
2019/03/07 Javascript
生成无限制的微信小程序码的示例代码
2019/09/20 Javascript
JavaScript 实现同时选取多个时间段的方法
2019/10/17 Javascript
[01:03:31]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第二局
2016/02/26 DOTA
python将多个文本文件合并为一个文本的代码(便于搜索)
2011/03/13 Python
你应该知道的python列表去重方法
2017/01/17 Python
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
2017/07/07 Python
django用户登录验证的完整示例代码
2019/07/21 Python
Python运行提示缺少模块问题解决方案
2020/04/02 Python
matplotlib 曲线图 和 折线图 plt.plot()实例
2020/04/17 Python
使用css创建三角形 使用CSS3创建3d四面体原理及代码(html5实践)
2013/01/06 HTML / CSS
Julep官网:美容产品和指甲油
2017/02/25 全球购物
美国时尚孕妇装品牌:A Pea in the Pod
2017/07/16 全球购物
Hawes & Curtis官网:英国经典品牌
2019/07/27 全球购物
附答案的Java面试题
2012/11/19 面试题
Ruby如何创建一个线程
2013/03/10 面试题
医务人员竞聘职务自我评价分享
2013/11/08 职场文书
创建市级文明单位实施方案
2014/03/01 职场文书
放飞中国梦演讲稿
2014/04/23 职场文书
大学生新学期计划书
2014/04/28 职场文书
学生抄袭作业的检讨书
2014/10/02 职场文书
2014年部门工作总结
2014/11/12 职场文书
教师个人年度总结
2015/02/11 职场文书