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

JavaScript原生折叠扩展收缩菜单带缓冲动画 @落雨
<div id="div_two" style="display: none;">
<p class="p1">机房介绍</p>
<div class="hide_jie">
<p>上海三门路数据中心</p>
位于上海市杨浦区三门路561号1楼C1室,一期机架数量200个,总规划机架数量500个,主要服务于华东地区的IDC应用及全国范围内的企业云计算需求。机房内拥有电信、联通、移动和BGP八线资源,总带宽超过40G,上海本地点对点传输及上海到浙江、北京等方向的长途传输;上海到香港,东南亚,美国等地的国际专线资源。、 是上海地区网络品质最高,服务最优质的数据中心。
</div>
<div class="show_1" onClick="spread('show_1_ct_1',this);">
机房简介
<div class="show_right">
<img class="show_img" src="img/show_btn.png">
</div>
</div>
<div id="show_1_ct_1" class="show_1_ct" style="display: none;">
<ul class="ul1">
<li><span class="sp1"> </span><span></span> 机房总面积2500平米,一期面积1100平方米,8级抗震建筑结构</li>
<li><span class="sp1"> </span> <span> </span>机房位于一楼,承重>1000公斤/平方米,绝缘地板设计,防电磁干扰设施</li>
<li><span class="sp1"> </span><span> </span>T3+级国际标准建造,先进的节能环保设计</li>
<li><span class="sp1"> </span><span> </span>充足的电力保障,丰富的网络资源</li>
<li><span class="sp1"> </span><span> </span>优质的机房环境,优越的地理位置,便捷的交通线路</li>
<li><span class="sp1"> </span><span> </span>全方位的业务范围,全面的管理、配套服务</li>
</ul>
</div>
<div class="show_1" onClick="spread('show_1_ct_2',this);">
综合布线
<div class="show_right">
<img class="show_img" src="img/show_btn.png">
</div>
</div>
<div id="show_1_ct_2" class="show_1_ct" style="display: none;">
<ul class="ul1">
<li><span class="sp1"> </span><span></span>分层走线,隐蔽、美观;</li>
<li><span class="sp1"> </span> <span> </span>桥架三层结构,由下至上分别以强电、光纤、弱电分布;</li>
<li><span class="sp1"> </span><span> </span>中层以光纤分隔防止强电信号干扰;</li>
<li><span class="sp1"> </span><span> </span>下层地面涂防水胶,加上3层抗静电、防尘漆。保证下层温度、湿度及清洁;</li>
</ul>
</div>
<div class="show_1" onClick="spread('show_1_ct_3',this);">机柜布置
<div class="show_right">
<img class="show_img" src="img/show_btn.png">
</div>
</div>
<div class="show_1_ct" id="show_1_ct_3" style="display: none;">
<ul class="ul1">
<li><span class="sp1"> </span><span></span>采用19英寸标准封闭式机柜,长宽高分别为110cm\60cm\200cm;</li>
<li><span class="sp1"> </span> <span> </span>所有标准机柜设有锁定功能,布放单模、多模的光纤和网线的集线排;</li>
<li><span class="sp1"> </span><span> </span>机柜全部预布放超五类线缆;</li>
<li><span class="sp1"> </span><span> </span>机柜组全部布放多模及单模光纤;</li>
<li><span class="sp1"> </span><span> </span>骨干布线桥架由配线间接入各个机房区域,提供灵活、冗余的布线方式;</li>
<li><span class="sp1"> </span><span> </span>机柜布线全部采用国际著名品牌,实现光纤、铜缆分桥架布设。</li>
</ul>
</div>
<div class="show_1" onClick="spread('show_1_ct_4',this);">供电系统
<div class="show_right">
<img class="show_img" src="img/show_btn.png">
</div>
</div>
<div class="show_1_ct" id="show_1_ct_4" style="display: none;">
<ul class="ul1">
<li><span class="sp1"> </span><span></span>两路通信市电高压供电系统,每路供电容量1600KVA,主备自动切换;</li>
<li><span class="sp1"> </span> <span> </span>双路冗余大功率智能台达(delta)UPS,1+1冗余备份,后备蓄电池全负载供电时间≥30min;</li>
<li><span class="sp1"> </span><span> </span>网络运行中心(NOC)24小时监测;</li>
<li><span class="sp1"> </span><span> </span>康明斯+马拉松 柴油供电系统,满载油机备油持续供电时间≥48h.;</li>
</ul>
</div>
/**
* 展开与收缩
* @param {[type]} ObjectId [description] 需要操作的ID
* @param {[type]} me [description] 当前对象,非必须
* @return {[type]} [description]
*/
function spread(ObjectId, me) {
var img = me.getElementsByTagName('img')[0];
if ($X(ObjectId).style.display == 'none') {
me.style.color = '#34a8bf';
Start(ObjectId, 'Opens');
//替换右边小图标
img.src="img/show_btn1.png";
} else {
me.style.color = '#000';
Start(ObjectId, 'Close');
img.src="img/show_btn.png";
}
}
/**
* 根据ID返回对象
* @param {[type]} Read_Id [description]
* @return {[type]} [description]
*/
function $X(Read_Id) {
return document.getElementById(Read_Id);
}
/**
* 开始动画+收缩啊啊啊啊啊啊啊啊
* @param {[type]} ObjId [description]
* @param {[type]} method [description]
*/
function Start(ObjId, method) {
var oo = $X(ObjId);
var firstH = oo.offsetHeight; //获取对象高度
firstH = firstH == 0 ? '300px' : firstH;
if (method == "Close") {
startrun(oo, "height", 0, function() {
oo.style.display = "none";
}, 'close');
} else if (method == "Opens") {
oo.style.display = "block";
oo.style.height = 0;
startrun(oo, "height", 300, function() {
}, 'close');
//oo.style.height = firstH;
}
}
/**
* 获得Style属性
* @param {[type]} obj [description]
* @param {[type]} name [description]
* @return {[type]} [description]
*/
function getstyle(obj, name) {
if (obj.currentStyle) {
return obj.currentStyle[name];
} else {
return getComputedStyle(obj, false)[name];
}
}
/**
* 动画库
* @param {[type]} obj [description]
* @param {[type]} attr [description]
* @param {[type]} target [description]
* @param {Function} fn [description]
* @param {[type]} action [description]
* @return {[type]} [description]
*/
function startrun(obj, attr, target, fn, action) {
clearInterval(obj.timer);
obj.timer = setInterval(function() {
var cur = 0;
obj.style.overflow = 'hidden';
if (attr == "opacity") {
cur = Math.round(parseFloat(getstyle(obj, attr)) * 100);
} else {
cur = parseInt(getstyle(obj, attr));
}
var speed = (target - cur) / 8;
speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
if (cur == target) {
clearInterval(obj.timer);
if (fn) {
fn();
}
} else {
if (attr == "opacity") {
obj.style.filter = "alpha(opacity=" + (cur + speed) + ")";
obj.style.opacity = (cur + speed) / 100;
} else {
obj.style[attr] = cur + speed + "px";
}
}
if (action == 'open') {
//obj.style.display = "block";
} else {
//obj.style.display = "none";
}
}, 30)
}
JavaScript原生折叠扩展收缩菜单带缓冲动画的更多相关文章
- js+css实现带缓冲效果右键弹出菜单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 使用jQuery 中的显示与隐藏动画效果实现折叠下拉菜单的收缩和展开,在页面的列表中有若干项,列表的每项中有一个二级列表,二级列表默认为隐藏状态。点击列表的项,切换二级列表的显示或隐藏状态
查看本章节 查看作业目录 需求说明: 使用jQuery 中的显示与隐藏动画效果实现折叠下拉菜单的收缩和展开,在页面的列表中有若干项,列表的每项中有一个二级列表,二级列表默认为隐藏状态.点击列表的项,切 ...
- JS实战 · 收缩菜单表单布局
获取节点的两种方式: 1.通过event对象的srcElement属性: 2.通过事件源对象用this传入. 代码如下: <html> <head> ...
- Object、Function、String、Array原生对象扩展方法
JavaScript原生对象的api有些情况下使用并不方便,考虑扩展基于Object.Function.String.Array扩展,参考了prototype.js的部分实现,做了提取和修改,分享下: ...
- js实现收缩菜单效果
废话不多说,直接上代码: 有注释 <head> <title></title> <style type="text/css"> di ...
- 文件I/O(不带缓冲)之原子操作
一.添写至一个文件 考虑一个进程,它要将数据添加到一个文件尾端.早期的UNIX系统并不支持open的O_APPEND选项,所以程序被编写成下列形式: ) < ) /* position to E ...
- jQuery弹性展开收缩菜单插件gooey.js
分享一款基于jQuery弹性展开收缩菜单插件gooey.js.这是一款基于gooey.js插件实现的弹性菜单特效代码.效果图如下: 在线预览 源码下载 实现的代码. html代码: <hea ...
- Django学习笔记(16)——扩展Django自带User模型,实现用户注册与登录
一,项目题目:扩展Django自带User模型,实现用户注册与登录 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册,登录,用户认证,注销,修改密码等功能. ...
- jQuery? 回归JavaScript原生API
如今技术日新月异,各类框架库也是层次不穷.即便当年漫山红遍的JQuery(让开发者write less, do more,So Perfect!!)如今也有被替代的大势.但JS原生API写法依旧:并且 ...
随机推荐
- WordPress默认栏目设置
WordPress是一个注重美学.易用性和网络标准的个人信息发布平台,是全球使用最多的博客系统,只需要在系统后台做一些简单的设计,基本就能实现我们日常个性化发布个人信息的需求,而博客后台的使用其实很简 ...
- linux下的循环命令写法
直切正题 方法一:利用while do循环,举例,while true;do ls;sleep 1;done 解释,该命令为每秒执行ls查询命令,sleep 1 为每秒循环,其他命令可直接替换 ls ...
- MYSQL数据库表中字段追加字符串内容
$sql="update parts set p_notes=concat(p_notes,'{$p_notes}') where p_id={$p_id}"; parts为表名 ...
- dump buffer cache
1.基础内容: ALTER SESSION SET EVENTS 'immediate trace name buffers level n'; n取值意义: 1 只转储buffer header. ...
- masterha_check_repl报错汇总
[root@DBMysql ~]#masterha_check_repl --conf=/etc/masterha/app1.cnf 导致如下报错的原因主要有两类: 1.mysql的安装时用源码安装, ...
- python 从private key pem文件中加载public key
import rsa import logging from Crypto.PublicKey import RSA class RsaUtil: def __init__(self, pem_fil ...
- 【C#】 装箱 (boxing) 和拆箱 (unboxing)
目录: 1. 装箱和拆箱 2. 深入理解装箱和拆箱 3. int[] to object[],值类型数组到对象数组的转化 4. 使用泛型减少装箱和拆箱 1. 装箱和拆箱 装箱 就是把“值类型”转换成 ...
- windows下找不到strings.h
头文件用的strings.h,换成string.h就好了.但是以前的Linux系统下用strings.h,strerror都能正常编译,怎么样能正常使用strings.h linux系统下的库问题跟w ...
- vim命令收集(持续中)
保存: 按ESC键 跳到命令模式,然后: :w 保存文件但不退出vi:w file 将修改另外保存到file中,不退出vi:w! 强制保存,不推出vi:wq 保存文件并退出vi:wq! 强制保存文件, ...
- Environment 类
提供有关当前环境和平台的信息以及操作它们的方法. 此类不能被继承. using System; using System.Collections; using System.Collections.G ...