JavaScript原生折叠扩展收缩菜单带缓冲动画 @落雨


  1. <div id="div_two" style="display: none;">
  2. <p class="p1">机房介绍</p>
  3. <div class="hide_jie">
  4. <p>上海三门路数据中心</p>
  5. 位于上海市杨浦区三门路561号1楼C1室,一期机架数量200个,总规划机架数量500个,主要服务于华东地区的IDC应用及全国范围内的企业云计算需求。机房内拥有电信、联通、移动和BGP八线资源,总带宽超过40G,上海本地点对点传输及上海到浙江、北京等方向的长途传输;上海到香港,东南亚,美国等地的国际专线资源。、 是上海地区网络品质最高,服务最优质的数据中心。
  6. </div>
  7. <div class="show_1" onClick="spread('show_1_ct_1',this);">
  8. 机房简介
  9. <div class="show_right">
  10. <img class="show_img" src="img/show_btn.png">
  11. </div>
  12. </div>
  13. <div id="show_1_ct_1" class="show_1_ct" style="display: none;">
  14. <ul class="ul1">
  15. <li><span class="sp1"> </span><span></span> 机房总面积2500平米,一期面积1100平方米,8级抗震建筑结构</li>
  16. <li><span class="sp1"> </span> <span> </span>机房位于一楼,承重>1000公斤/平方米,绝缘地板设计,防电磁干扰设施</li>
  17. <li><span class="sp1"> </span><span> </span>T3+级国际标准建造,先进的节能环保设计</li>
  18. <li><span class="sp1"> </span><span> </span>充足的电力保障,丰富的网络资源</li>
  19. <li><span class="sp1"> </span><span> </span>优质的机房环境,优越的地理位置,便捷的交通线路</li>
  20. <li><span class="sp1"> </span><span> </span>全方位的业务范围,全面的管理、配套服务</li>
  21. </ul>
  22. </div>
  23. <div class="show_1" onClick="spread('show_1_ct_2',this);">
  24. 综合布线
  25. <div class="show_right">
  26. <img class="show_img" src="img/show_btn.png">
  27. </div>
  28. </div>
  29. <div id="show_1_ct_2" class="show_1_ct" style="display: none;">
  30. <ul class="ul1">
  31. <li><span class="sp1"> </span><span></span>分层走线,隐蔽、美观;</li>
  32. <li><span class="sp1"> </span> <span> </span>桥架三层结构,由下至上分别以强电、光纤、弱电分布;</li>
  33. <li><span class="sp1"> </span><span> </span>中层以光纤分隔防止强电信号干扰;</li>
  34. <li><span class="sp1"> </span><span> </span>下层地面涂防水胶,加上3层抗静电、防尘漆。保证下层温度、湿度及清洁;</li>
  35. </ul>
  36. </div>
  37. <div class="show_1" onClick="spread('show_1_ct_3',this);">机柜布置
  38. <div class="show_right">
  39. <img class="show_img" src="img/show_btn.png">
  40. </div>
  41. </div>
  42. <div class="show_1_ct" id="show_1_ct_3" style="display: none;">
  43. <ul class="ul1">
  44. <li><span class="sp1"> </span><span></span>采用19英寸标准封闭式机柜,长宽高分别为110cm\60cm\200cm;</li>
  45. <li><span class="sp1"> </span> <span> </span>所有标准机柜设有锁定功能,布放单模、多模的光纤和网线的集线排;</li>
  46. <li><span class="sp1"> </span><span> </span>机柜全部预布放超五类线缆;</li>
  47. <li><span class="sp1"> </span><span> </span>机柜组全部布放多模及单模光纤;</li>
  48. <li><span class="sp1"> </span><span> </span>骨干布线桥架由配线间接入各个机房区域,提供灵活、冗余的布线方式;</li>
  49. <li><span class="sp1"> </span><span> </span>机柜布线全部采用国际著名品牌,实现光纤、铜缆分桥架布设。</li>
  50. </ul>
  51. </div>
  52. <div class="show_1" onClick="spread('show_1_ct_4',this);">供电系统
  53. <div class="show_right">
  54. <img class="show_img" src="img/show_btn.png">
  55. </div>
  56. </div>
  57. <div class="show_1_ct" id="show_1_ct_4" style="display: none;">
  58. <ul class="ul1">
  59. <li><span class="sp1"> </span><span></span>两路通信市电高压供电系统,每路供电容量1600KVA,主备自动切换;</li>
  60. <li><span class="sp1"> </span> <span> </span>双路冗余大功率智能台达(delta)UPS,1+1冗余备份,后备蓄电池全负载供电时间≥30min;</li>
  61. <li><span class="sp1"> </span><span> </span>网络运行中心(NOC)24小时监测;</li>
  62. <li><span class="sp1"> </span><span> </span>康明斯+马拉松 柴油供电系统,满载油机备油持续供电时间≥48h.;</li>
  63. </ul>
  64. </div>

  1. /**
  2. * 展开与收缩
  3. * @param {[type]} ObjectId [description] 需要操作的ID
  4. * @param {[type]} me [description] 当前对象,非必须
  5. * @return {[type]} [description]
  6. */
  7. function spread(ObjectId, me) {
  8. var img = me.getElementsByTagName('img')[0];
  9. if ($X(ObjectId).style.display == 'none') {
  10. me.style.color = '#34a8bf';
  11. Start(ObjectId, 'Opens');
  12. //替换右边小图标
  13. img.src="img/show_btn1.png";
  14. } else {
  15. me.style.color = '#000';
  16. Start(ObjectId, 'Close');
  17. img.src="img/show_btn.png";
  18. }
  19. }
  20. /**
  21. * 根据ID返回对象
  22. * @param {[type]} Read_Id [description]
  23. * @return {[type]} [description]
  24. */
  25. function $X(Read_Id) {
  26. return document.getElementById(Read_Id);
  27. }
  28. /**
  29. * 开始动画+收缩啊啊啊啊啊啊啊啊
  30. * @param {[type]} ObjId [description]
  31. * @param {[type]} method [description]
  32. */
  33. function Start(ObjId, method) {
  34. var oo = $X(ObjId);
  35. var firstH = oo.offsetHeight; //获取对象高度
  36. firstH = firstH == 0 ? '300px' : firstH;
  37. if (method == "Close") {
  38. startrun(oo, "height", 0, function() {
  39. oo.style.display = "none";
  40. }, 'close');
  41. } else if (method == "Opens") {
  42. oo.style.display = "block";
  43. oo.style.height = 0;
  44. startrun(oo, "height", 300, function() {
  45. }, 'close');
  46. //oo.style.height = firstH;
  47. }
  48. }
  49. /**
  50. * 获得Style属性
  51. * @param {[type]} obj [description]
  52. * @param {[type]} name [description]
  53. * @return {[type]} [description]
  54. */
  55. function getstyle(obj, name) {
  56. if (obj.currentStyle) {
  57. return obj.currentStyle[name];
  58. } else {
  59. return getComputedStyle(obj, false)[name];
  60. }
  61. }
  62. /**
  63. * 动画库
  64. * @param {[type]} obj [description]
  65. * @param {[type]} attr [description]
  66. * @param {[type]} target [description]
  67. * @param {Function} fn [description]
  68. * @param {[type]} action [description]
  69. * @return {[type]} [description]
  70. */
  71. function startrun(obj, attr, target, fn, action) {
  72. clearInterval(obj.timer);
  73. obj.timer = setInterval(function() {
  74. var cur = 0;
  75. obj.style.overflow = 'hidden';
  76. if (attr == "opacity") {
  77. cur = Math.round(parseFloat(getstyle(obj, attr)) * 100);
  78. } else {
  79. cur = parseInt(getstyle(obj, attr));
  80. }
  81. var speed = (target - cur) / 8;
  82. speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
  83. if (cur == target) {
  84. clearInterval(obj.timer);
  85. if (fn) {
  86. fn();
  87. }
  88. } else {
  89. if (attr == "opacity") {
  90. obj.style.filter = "alpha(opacity=" + (cur + speed) + ")";
  91. obj.style.opacity = (cur + speed) / 100;
  92. } else {
  93. obj.style[attr] = cur + speed + "px";
  94. }
  95. }
  96. if (action == 'open') {
  97. //obj.style.display = "block";
  98. } else {
  99. //obj.style.display = "none";
  100. }
  101. }, 30)
  102. }

JavaScript原生折叠扩展收缩菜单带缓冲动画的更多相关文章

  1. js+css实现带缓冲效果右键弹出菜单

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. 使用jQuery 中的显示与隐藏动画效果实现折叠下拉菜单的收缩和展开,在页面的列表中有若干项,列表的每项中有一个二级列表,二级列表默认为隐藏状态。点击列表的项,切换二级列表的显示或隐藏状态

    查看本章节 查看作业目录 需求说明: 使用jQuery 中的显示与隐藏动画效果实现折叠下拉菜单的收缩和展开,在页面的列表中有若干项,列表的每项中有一个二级列表,二级列表默认为隐藏状态.点击列表的项,切 ...

  3. JS实战 ·  收缩菜单表单布局

     获取节点的两种方式:     1.通过event对象的srcElement属性:     2.通过事件源对象用this传入.     代码如下: <html> <head> ...

  4. Object、Function、String、Array原生对象扩展方法

    JavaScript原生对象的api有些情况下使用并不方便,考虑扩展基于Object.Function.String.Array扩展,参考了prototype.js的部分实现,做了提取和修改,分享下: ...

  5. js实现收缩菜单效果

    废话不多说,直接上代码: 有注释 <head> <title></title> <style type="text/css"> di ...

  6. 文件I/O(不带缓冲)之原子操作

    一.添写至一个文件 考虑一个进程,它要将数据添加到一个文件尾端.早期的UNIX系统并不支持open的O_APPEND选项,所以程序被编写成下列形式: ) < ) /* position to E ...

  7. jQuery弹性展开收缩菜单插件gooey.js

    分享一款基于jQuery弹性展开收缩菜单插件gooey.js.这是一款基于gooey.js插件实现的弹性菜单特效代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <hea ...

  8. Django学习笔记(16)——扩展Django自带User模型,实现用户注册与登录

    一,项目题目:扩展Django自带User模型,实现用户注册与登录 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册,登录,用户认证,注销,修改密码等功能. ...

  9. jQuery? 回归JavaScript原生API

    如今技术日新月异,各类框架库也是层次不穷.即便当年漫山红遍的JQuery(让开发者write less, do more,So Perfect!!)如今也有被替代的大势.但JS原生API写法依旧:并且 ...

随机推荐

  1. 点击后弧形展开的炫酷菜单--第三方开源-- CircularFloatingActionMenu(一)

    CircularFloatingActionMenu在github上项目主页地址:https://github.com/oguzbilgener/CircularFloatingActionMenu ...

  2. C# 常用的dialogresult reset 以及if else 等检查获取客户操作信息的操作方法

    DialogResult reset; reset= MessageBox.Show("请检查您的输入信息是否按照规则输入的", "信息输入好像有问题哦", M ...

  3. [转]浅谈Python web框架

    说到web framework,Ruby的世界Rails一统江湖,而Python则是一个百花齐放的世界,各种micro-framework.framework不可胜数,不完全列表见:http://wi ...

  4. 在newegg工作的这两个月

    6月11号,接到录用通知后的第二天,来到了Newegg . 作为开发,在本职工作上 1.入职Quick Start: 两周多的入职快速指引,以了解业务,架构为目的. 因为之前一直有用思维导图的习惯,所 ...

  5. Lex+YACC详解

    1. 简介 只要你在Unix环境中写过程序,你必定会邂逅神秘的Lex&YACC,就如GNU/Linux用户所熟知的Flex&Bison,这里的Flex就是由Vern Paxon实现的一 ...

  6. hdu 5280 Senior's Array

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5280 Senior's Array Description One day, Xuejiejie ge ...

  7. Android的一些常用命令提示符(cmd)指令

    在<Android基础之用Eclipse搭建Android开发环境和创建第一个Android项目>中我曾介绍过如何给Android SDK配置环境变量,现在它就有用武之地了,我们可以直接在 ...

  8. 【HTML5】炫丽的时钟效果Canvas绘图与动画基础练习

    源自慕课网 效果如下: 全部代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...

  9. 从零开始学ios开发(四):IOS控件(1),Image View、Text Field、Keyboard

    长话短说,谢谢大家的关注,这篇写了好长时间,下面继续学习ios.我将用2到3篇的篇幅来学习iphone上的一些常用控件,包括Image View.Text Field.Keyboard.Slider等 ...

  10. java数据结构和算法------快速排序

    package iYou.neugle.sort; public class Quick_sort { public static void QuickSort(double[] array, int ...