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 相关文章推荐
HTML5附件拖拽上传drop &amp; google.gears实现代码
Apr 28 Javascript
Jquery之Ajax运用 学习运用篇
Sep 26 Javascript
使用JSLint提高JS代码质量方法分享
Dec 16 Javascript
关于onchange事件在IE和FF下的表现及解决方法
Mar 08 Javascript
判断复选框是否被选中的两种方法
Jun 04 Javascript
JavaScript中的标签语句用法分析
Feb 10 Javascript
jquery中map函数遍历数组用法实例
May 18 Javascript
JS中处理时间之setUTCMinutes()方法的使用
Jun 12 Javascript
js中获取时间new Date()的全面介绍
Jun 20 Javascript
浅谈jQuery中的$.extend方法来扩展JSON对象
Feb 12 Javascript
微信小程序数据存储与取值详解
Jan 30 Javascript
el-table-column 内容不自动换行的解决方法
Aug 14 Vue.js
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
复杂检索数据并分页显示的处理方法
2006/10/09 PHP
深入解析php模板技术原理【一】
2008/01/10 PHP
php 禁止页面缓存输出
2009/01/07 PHP
探讨PHP中this,self,parent的区别详解
2013/06/08 PHP
深入解析Session是否必须依赖Cookie
2013/08/02 PHP
zf框架的Filter过滤器使用示例
2014/03/13 PHP
PHP实现对文本数据库的常用操作方法实例演示
2014/07/04 PHP
php替换字符串中间字符为省略号的方法
2015/05/04 PHP
php用户登录之cookie信息安全分析
2016/05/13 PHP
[原创]smarty简单模板变量输出方法
2016/07/09 PHP
浅谈laravel orm 中的一对多关系 hasMany
2019/10/21 PHP
JS 自定义函数缺省值的设置方法
2010/05/05 Javascript
JS对象转换为Jquery对象实现代码
2013/12/29 Javascript
javascript随机显示背景图片的方法
2015/06/18 Javascript
JavaScript实现的浮动层框架用法实例分析
2015/10/10 Javascript
javascript 秒表计时器实现代码
2017/03/09 Javascript
JS双向链表实现与使用方法示例(增加一个previous属性实现)
2019/01/31 Javascript
Vue 实现分页与输入框关键字筛选功能
2020/01/02 Javascript
[02:43]DOTA2亚洲邀请赛场馆攻略——带你走进东方体育中心
2018/03/19 DOTA
python sqlobject(mysql)中文乱码解决方法
2008/11/14 Python
Python Flask-web表单使用详解
2017/11/18 Python
python实现ID3决策树算法
2017/12/20 Python
Python面向对象class类属性及子类用法分析
2018/02/02 Python
PyCharm+PyQt5+QtDesigner配置详解
2020/08/12 Python
django使用graphql的实例
2020/09/02 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
2020/11/01 Python
HTML 5 input placeholder 属性如何完美兼任ie
2014/05/12 HTML / CSS
MADE法国:提供原创设计师家具
2018/09/18 全球购物
英国网上电器商店:Electricshop
2020/03/15 全球购物
党支部书记先进事迹
2014/01/17 职场文书
雪山饭庄的创业计划书范文
2014/01/18 职场文书
学校督导评估方案
2014/06/10 职场文书
幼儿老师求职信
2014/06/30 职场文书
2015年派出所民警工作总结
2015/04/24 职场文书
现实表现证明材料
2015/06/19 职场文书
入党申请书格式
2019/06/20 职场文书