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学习4 浏览器的事件模型
Feb 07 Javascript
JavaScript获取/更改文本框的值的实例代码
Aug 02 Javascript
jQuery选择器源码解读(八):addCombinator函数
Mar 31 Javascript
JavaScript使用RegExp进行正则匹配的方法
Jul 11 Javascript
js实现正则匹配中文标点符号的方法
Dec 23 Javascript
js与applet相互调用的方法
Jun 22 Javascript
不使用script导入js文件的几种方法
Oct 27 Javascript
BootStrap fileinput.js文件上传组件实例代码
Feb 20 Javascript
微信小程序 下拉菜单的实现
Apr 06 Javascript
基于jquery实现五星好评
Nov 18 jQuery
vue+express+jwt持久化登录的方法
Jun 14 Javascript
浅谈Webpack4 Tree Shaking 终极优化指南
Nov 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求正负数数组中连续元素最大值示例
2014/04/11 PHP
PHP实现下载断点续传的方法
2014/11/12 PHP
php将12小时制转换成24小时制的方法
2015/03/31 PHP
值得分享的php+ajax实时聊天室
2016/07/20 PHP
PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
2018/12/08 PHP
javascript据option的value值快速设定初始的selected选项
2007/08/13 Javascript
js中eval详解
2012/03/30 Javascript
jQuery动态添加删除select项(实现代码)
2013/09/03 Javascript
JS数组去重与取重的示例代码
2014/01/24 Javascript
基于iframe实现类似于ajax的页面无刷新
2014/05/31 Javascript
JavaScript返回0-1之间随机数的方法
2015/04/06 Javascript
详解javascript跨浏览器事件处理程序
2016/03/27 Javascript
修改jquery中dialog的title属性方法(推荐)
2016/08/26 Javascript
JS实现的驼峰式和连字符式转换功能分析
2016/12/21 Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
2017/09/01 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
2017/09/30 Javascript
一个Vue视频媒体多段裁剪组件的实现示例
2018/08/09 Javascript
layui radio点击事件实现input显示和隐藏的例子
2019/09/02 Javascript
vue实现图片懒加载的方法分析
2020/02/05 Javascript
从零使用TypeScript开发项目打包发布到npm
2020/02/14 Javascript
JQuery通过键盘控制键盘按下与松开触发事件
2020/08/07 jQuery
[01:31]完美与DOTA2历程
2014/07/31 DOTA
Python itertools模块详解
2015/05/09 Python
使用Python中的tkinter模块作图的方法
2017/02/07 Python
Python3学习笔记之列表方法示例详解
2017/10/06 Python
python入门:这篇文章带你直接学会python
2018/09/14 Python
在交互式环境中执行Python程序过程详解
2019/07/12 Python
使用Keras 实现查看model weights .h5 文件的内容
2020/06/09 Python
详解python datetime模块
2020/08/17 Python
AVI-8手表美国官方商店:AVI-8 USA
2019/04/10 全球购物
Notino匈牙利:购买香水和化妆品
2019/04/12 全球购物
美国最大的户外装备和服装购物网站:Backcountry
2019/10/15 全球购物
Tomcat中怎么使用log4j输出所有的log
2016/07/07 面试题
12月小学生校园广播稿
2014/02/04 职场文书
党员创先争优公开承诺书
2014/03/28 职场文书
志愿者工作心得体会
2016/01/15 职场文书