JS+CSS实现经典的左侧竖向滑动菜单效果


Posted in Javascript onSeptember 23, 2015

本文实例讲述了JS+CSS实现经典的左侧竖向滑动菜单效果。分享给大家供大家参考。具体如下:

这是一款经过改造的左侧竖向滑动菜单,基于JavaScript+CSS,没有过多的修饰,主要想实现菜单的动画效果,想用的朋友,自己美化吧。

运行效果截图如下:

JS+CSS实现经典的左侧竖向滑动菜单效果

在线演示地址如下:

具体代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<title>经过改造的左侧竖向滑动菜单</title>
<style type="text/css">
body{
 margin:10px;
 padding:10px;
}
a:link { text-decoration: none;color: blue} 
a:active { text-decoration:blink} 
a:hover { text-decoration:underline;color: red} 
a:visited { text-decoration: none;color: green} 
body,td,div,span,li{
 font-size:12px;
}
.title01,.title02{
 color:#00b;
 font-weight:bold;
}
#DoorP{
 width:200px;
 height:300px;
 padding:0px;
 background:#FFFCF2;
}
.title01{
 width:100%;
 height:25px;
 background:#FFFCF2;
 cursor:pointer;
}
.title02{
 width:100%;
 height:25px;
 background:#FFFCF2;
 cursor:pointer;
}
.content{
 background:#FFFCF2;
 border-bottom:2px solid #fff;
 overflow:hidden;
 color:#666;
 padding-left:4px;
 padding-right:4px;
 line-height:18px;
}
.curved { 
 width:202px; 
 } 
.curved .b1, .curved .b2, .curved .b3, .curved .b4 { 
 font-size:1px; 
 display:block; 
 background:#FFFCF2; 
overflow: hidden; 
} 
.curved .b1, .curved .b2, .curved .b3 { 
 height:1px; 
 } 
.curved .b2, .curved .b3, .curved .b4 { 
 background:#FFFCF2; 
 border-left:1px solid #C7BC98; 
 border-right:1px solid #C7BC98; 
 } 
.curved .b1 { 
 margin:0 4px; 
 background:#C7BC98; 
 } 
.curved .b2 { 
 margin:0 2px; 
 border-width:0 2px; 
 } 
.curved .b3 { 
 margin:0 1px; 
 } 
.curved .b4 { 
 height:2px; 
 margin:0; 
 } 
.curved .c1 { 
 margin:0 5px; 
 background:#C7BC98; 
 } 
.curved .c2 { 
 margin:0 3px; 
 border-width:0 2px; 
 } 
.curved .c3 { 
 margin:0 2px; 
 } 
.curved .c4 { 
 height:2px; 
 margin: 0 1px; 
 } 
.curved .boxcontent { 
 display:block; 
 background:transparent; 
 border-left:1px solid #C7BC98; 
 border-right:1px solid #C7BC98; 
 font-size:0.9em; 
 text-align:justify; 
 } 
</style>
<div class="curved"> 
 <b class="b1 c1"></b> 
 <b class="b2 c2"></b> 
 <b class="b3 c3"></b> 
 <b class="b4 c4"></b> 
 <div class="boxcontent"> 
<div id="DoorP">
 <table>
 <tr>
  <td align="center">
   第一层信息
  </td>
 </tr>
 </table>
 <div class="content" align="center">
 <a href="#">二层</a><br/>
 二层<br/>
 二层<br/>
 </div>
  <b class="b1"></b> 
  <b class="b2"></b> 
  <b class="b3"></b> 
  <b class="b4"></b> 
 <table>
 <tr>
  <td align="center">
  第二层信息
  </td>
 </tr>
 </table>
<div class="content" align="center">
 <a href="#">二层</a><br/>
 二层<br/>
 二层<br/>
 </div>
  <b class="b1"></b> 
  <b class="b2"></b> 
  <b class="b3"></b> 
  <b class="b4"></b> 
 <table>
 <tr>
  <td align="center">
  第三层信息
  </td>
 </tr>
 </table>
<div class="content" align="center">
 <a href="#">二层</a><br/>
 二层<br/>
 二层<br/>
 </div>
</div></div> 
 <b class="b4 c4"></b> 
 <b class="b3 c3"></b> 
 <b class="b2 c2"></b> 
 <b class="b1 c1"></b> 
<script type="text/javascript">
 var open = 2;
 var openState = new Array();
 var closeState = new Array();
 var dH = 220;
 function $(id){
 if(document.getElementById(id))
 {
  return document.getElementById(id);
 }
 else
 {
  alert("没有找到!");
 }
 }
 function $tag(id,tagName){
 return $(id).getElementsByTagName(tagName)
 }
 function closeMe(Cid,Oid){  
 var h = parseInt(Ds[Cid].style.height);
 //alert(h);
 if(h > 2)
 {
  h = h - Math.ceil(h/3);  
  Ds[Cid].style.height = h+"px";
 }
 else
 { 
  openMe(Oid);
  clearTimeout(closeState[Cid]);
  return false;
 }
 closeState[Cid] = setTimeout("closeMe("+Cid+","+Oid+")");
 }
 function openMe(Oid){
 var h = parseInt(Ds[Oid].style.height); 
 //alert(h);
 if(h < dH)
 {
  h = h + Math.ceil((dH-h)/3);  
  Ds[Oid].style.height = h+"px";
 }
 else
 { 
  clearTimeout(openState[Oid]);  
  return false;
 }
 openState[Oid] = setTimeout("openMe("+Oid+")");
 }
 var Ds = $tag("DoorP","div");
 var Ts = $tag("DoorP","table");
 if(Ds.length != Ts.length)
 {
 alert("标题和内容数目不相同!");
 }
 for(var i = 0 ; i < Ds.length ; i++)
 { 
 if(i==open)
 {
  Ds[i].style.height = dH+"px";
  Ts[i].className="title01";
 }
 else
 {
  Ds[i].style.height = "0px";
  Ts[i].className="title02";
 }
 Ts[i].value = i;
 Ts[i].onclick = function(){
  if(open==this.value)
  {
  return false;
  }
  Ts[open].className="title02";
  Ts[this.value].className="title01";
  for(var i = 0 ; i < openState.length ; i++)
  {
  clearTimeout(openState[i]);
  clearTimeout(closeState[i]);
  }
  closeMe(open,this.value);
  //openMe(this.value);
  open = this.value;
 }
 } 
 function showDiv(id){ 
 Ds[id].style.height=dH+"px";
 Ds[open].style.height="0px";
 open = id;
 }
</script>

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

Javascript 相关文章推荐
新闻内页-JS分页
Jun 07 Javascript
用js生产批量批处理执行命令
Jul 28 Javascript
JQuery中getJSON的使用方法
Dec 13 Javascript
基于JQuery实现的类似购物商城的购物车
Dec 06 Javascript
jquery动画2.元素坐标动画效果(创建一个图片走廊)
Aug 24 Javascript
转义字符(\)对JavaScript中JSON.parse的影响概述
Jul 17 Javascript
jquery实现的点击翻书效果代码
Nov 04 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
May 05 Javascript
根据输入邮箱号跳转到相应登录地址的解决方法
Dec 13 Javascript
基于hover的用法实例(推荐)
Jul 04 Javascript
vue2.0 和 animate.css的结合使用
Dec 12 Javascript
详解JavaScript中typeof与instanceof用法
Oct 24 Javascript
直接拿来用的15个jQuery代码片段
Sep 23 #Javascript
JS实现漂亮的淡蓝色滑动门效果代码
Sep 23 #Javascript
jQuery Validate验证框架经典大全
Sep 23 #Javascript
Javascript实现的简单右键菜单类
Sep 23 #Javascript
js实现无限级树形导航列表效果代码
Sep 23 #Javascript
JS实现同一个网页布局滑动门和TAB选项卡实例
Sep 23 #Javascript
JS实现3D图片旋转展示效果代码
Sep 22 #Javascript
You might like
php基础知识:函数基础知识
2006/12/13 PHP
浅析php面向对象public private protected 访问修饰符
2013/06/30 PHP
Win7下手动安装apache2.2、php5.4笔记
2015/04/03 PHP
php实现粘贴截图并完成上传功能
2015/05/17 PHP
基于PHP实现生成随机水印图片
2020/12/09 PHP
WordPress JQuery处理沙发头像
2009/06/22 Javascript
Javascript isArray 数组类型检测函数
2009/10/08 Javascript
jQuery中fadeIn、fadeOut、fadeTo的使用方法(图片显示与隐藏)
2013/05/08 Javascript
jQuery中appendTo()方法用法实例
2015/01/08 Javascript
JavaScript模拟实现键盘打字效果
2015/06/29 Javascript
JavaScript 实现 Tab 点击切换实例代码
2017/03/25 Javascript
jQuery使用ajax_动力节点Java学院整理
2017/07/05 jQuery
Javascript将图片的绝对路径转换为base64编码的方法
2018/01/11 Javascript
使用vue-router为每个路由配置各自的title
2018/07/30 Javascript
浅谈layui里的上传控件问题
2019/09/26 Javascript
JS Array.from()将伪数组转换成数组的方法示例
2020/03/23 Javascript
微信小程序canvas动态时钟
2020/10/22 Javascript
python dataframe向下向上填充,fillna和ffill的方法
2018/11/28 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
2019/08/09 Python
解决TensorFlow训练内存不断增长,进程被杀死问题
2020/02/05 Python
通过实例解析python创建进程常用方法
2020/06/19 Python
通过实例解析Python RPC实现原理及方法
2020/07/07 Python
Html5适配iphoneX刘海屏的简单实现
2019/04/09 HTML / CSS
Lands’ End英国官方网站:高质量男女服装
2017/10/07 全球购物
Hashtable 添加内容的方式有哪几种,有什么区别?
2012/04/08 面试题
公职人员索取回扣检举信
2014/04/04 职场文书
巾帼建功标兵事迹材料
2014/05/11 职场文书
大二学生学年自我鉴定
2014/09/12 职场文书
2014年教师个人工作总结
2014/11/10 职场文书
学生检讨书
2015/01/27 职场文书
世界红十字日活动总结
2015/02/10 职场文书
2015年幼儿园中班开学寄语
2015/05/27 职场文书
2016年习总书记讲话学习心得体会
2016/01/20 职场文书
Python爬虫:从m3u8文件里提取小视频的正确操作
2021/05/14 Python
详细介绍MySQL中limit和offset的用法
2022/05/06 MySQL
Windows server 2016服务器基本设置
2022/08/14 Servers