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 相关文章推荐
贴一个在Mozilla中常用的Javascript代码
Jan 09 Javascript
网页javascript精华代码集
Jan 24 Javascript
JavaScript中实现块作用域的方法
Apr 01 Javascript
js实现在同一窗口浏览图片
Sep 17 Javascript
JavaScript通过function定义对象并给对象添加toString()方法实例分析
Mar 23 Javascript
JS HTML5实现拖拽移动列表效果
Aug 27 Javascript
JavaScript的兼容性与调试技巧
Nov 22 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
Jun 13 Javascript
vuex 使用文档小结篇
Jan 11 Javascript
JS求Number类型数组中最大元素方法
Apr 08 Javascript
Element Table的row-class-name无效与动态高亮显示选中行背景色
Nov 30 Javascript
使用layui 的layedit定义自己的toolbar方法
Sep 18 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
PHP漏洞全解(详细介绍)
2012/11/13 PHP
Drupal7中常用的数据库操作实例
2014/03/02 PHP
php foreach正序倒序输出示例代码
2014/07/01 PHP
PHP getallheaders无法获取自定义头(headers)的问题
2016/03/23 PHP
HTTP状态代码以及定义(解释)
2007/02/02 Javascript
js电信网通双线自动选择技巧
2008/11/18 Javascript
javascript css在IE和Firefox中区别分析
2009/02/18 Javascript
jQuery对象和DOM对象相互转化
2009/04/24 Javascript
JQuery将文本转化成JSON对象需要注意的问题
2011/05/09 Javascript
浅谈jquery中delegate()与live()
2015/06/22 Javascript
自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选与多选下拉框
2015/12/12 Javascript
jquery form表单获取内容以及绑定数据
2016/02/24 Javascript
JS实现支持Ajax验证的表单插件
2016/03/24 Javascript
AngularJs $parse、$eval和$observe、$watch详解
2016/09/21 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
vue源码入口文件分析(推荐)
2018/01/30 Javascript
jQuery实现获取form表单内容及绑定数据到form表单操作分析
2018/07/03 jQuery
使用webpack编译es6代码的方法步骤
2019/04/28 Javascript
JS实现TITLE悬停长久显示效果完整示例
2020/02/11 Javascript
原生js实现瀑布流效果
2020/03/09 Javascript
JavaScript大数相加相乘的实现方法实例
2020/10/18 Javascript
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
2017/07/20 Python
Python使用Dijkstra算法实现求解图中最短路径距离问题详解
2018/05/16 Python
Python callable内置函数原理解析
2020/03/05 Python
Java的for语句中break, continue和return的区别
2013/12/19 面试题
一套VC试题
2015/01/23 面试题
资源环境与城市管理专业推荐信
2013/11/30 职场文书
教师队伍管理制度
2014/01/14 职场文书
工商治理实习生的自我评价
2014/01/15 职场文书
社区中秋节活动方案
2014/01/29 职场文书
教师党性分析材料
2014/02/04 职场文书
2015年党建工作目标责任书
2015/05/08 职场文书
高中班主任工作总结(范文)
2019/08/20 职场文书
实用干货:敬酒词大全,帮你应付各种场合
2019/11/21 职场文书
Docker与K8s关系介绍不会Docker也可以使用K8s
2022/06/25 Servers