js实现div层缓慢收缩与展开的方法


Posted in Javascript onMay 11, 2015

本文实例讲述了js实现div层缓慢收缩与展开的方法。分享给大家供大家参考。具体分析如下:

这是一个层伸缩与展开的特效代码,带有点动画效果,缓慢展开,DIV+JS联合打造,看上去还不错。不受内容约束,收缩与展开的速度是可以控制的,高度、循环时间也可以改。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>层收缩</title>
<script type="text/javascript">
var mh = 30;//高度
var step = 1;//每次变化的量
var ms = 10;//循环时间
function toggle(o){
 if (!o.tid)o.tid = "_" + Math.random() * 100;
 if (!window.toggler)window.toggler = {};
 if (!window.toggler[o.tid]){
  window.toggler[o.tid]={
   obj:o,
   maxHeight:o.offsetHeight,
   minHeight:mh,
   timer:null,
   action:1
  };
 }
 o.style.height = o.offsetHeight + "px";
 if (window.toggler[o.tid].timer)clearTimeout(window.toggler[o.tid].timer);
 window.toggler[o.tid].action *= -1;
 window.toggler[o.tid].timer = setTimeout("anim('"+o.tid+"')",ms );
}
function anim(id){
 var t = window.toggler[id];
 var o = window.toggler[id].obj;
 if (t.action < 0){
  if (o.offsetHeight <= t.minHeight){
   clearTimeout(t.timer);
   return;
  }
 }
 else{
  if (o.offsetHeight >= t.maxHeight){
   clearTimeout(t.timer);
   return;
  }
 }
 o.style.height = (parseInt(o.style.height, 10) + t.action * step) + "px";
 window.toggler[id].timer = setTimeout("anim('"+id+"')",ms );
}
</script>
<style type="text/css">
div.xx{
 border:solid 1px;overflow:hidden;
}
div.xx h5{
 border:solid 1px;border-width:0 0 1px;
 padding:0;margin:0;height:28px;
 line-height:30px;cursor:pointer;
 background:#eee;
}
</style>
</head>
<body>
<div class="xx"><h5 onclick="toggle(this.parentNode)">点击此处层伸缩</h5>
<p>Tomat6.0的配置视频教程,AVI电影格式,相当清淅了,比起图文版的教程更贴切,
不会配置Tomcat的网友,你可不要错过哦,由于视频抓图挺麻烦的,
试了多次还是抓了一个不太清淅的,大家将就吧。</p>
</div>
</body>
</html>

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

Javascript 相关文章推荐
Jquery 动态添加按钮实现代码
May 06 Javascript
用javascript关闭本窗口技巧小结
Sep 05 Javascript
JavaScript的Vue.js库入门学习教程
May 23 Javascript
jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
Nov 09 Javascript
基于jQuery实现左侧菜单栏可折叠功能
Dec 27 Javascript
jQuery点击导航栏选中更换样式的实现代码
Jan 23 Javascript
对vuex中getters计算过滤操作详解
Nov 06 Javascript
JavaScript实现打砖块游戏
Feb 25 Javascript
js数组相减简单示例【删除a数组所有与b数组相同元素】
Mar 04 Javascript
js里面的变量范围分享
Jul 18 Javascript
vue基于Echarts的拖拽数据可视化功能实现
Dec 04 Vue.js
react使用antd的上传组件实现文件表单一起提交功能(完整代码)
Jun 29 Javascript
JS实现定时自动关闭DIV层提示框的方法
May 11 #Javascript
最精简的JavaScript实现鼠标拖动效果的方法
May 11 #Javascript
JavaScript实现表格点击排序的方法
May 11 #Javascript
JavaScript点击按钮后弹出透明浮动层的方法
May 11 #Javascript
js实现鼠标移到链接文字弹出一个提示层的方法
May 11 #Javascript
js光标定位文本框回车表单提交问题的解决方法
May 11 #Javascript
jQuery子窗体取得父窗体元素的方法
May 11 #Javascript
You might like
PHP读取文件的常见几种方法
2016/11/03 PHP
JavaScript中的集合及效率
2010/01/08 Javascript
javascript,jquery闭包概念分析
2010/06/19 Javascript
原生js ActiveXObject获取execl里面的值
2013/11/01 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
2014/11/26 Javascript
使用RequireJS优化JavaScript引用代码的方法
2015/07/01 Javascript
JavaScript实现的多种鼠标拖放效果
2015/11/03 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
探寻JavaScript中this指针指向
2016/04/23 Javascript
浅析JavaScript中命名空间namespace模式
2016/06/22 Javascript
JavaScript实现in-place思想的快速排序方法
2016/08/07 Javascript
jQuery插件zTree实现删除树子节点的方法示例
2017/03/08 Javascript
js实现网页的两个input标签内的数值加减(示例代码)
2017/08/15 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
2018/09/15 Javascript
node.js如何操作MySQL数据库
2020/10/29 Javascript
JavaScript实现点击自制菜单效果
2021/02/02 Javascript
[43:35]TI4 循环赛第二日Liquid vs Fnatic
2014/07/11 DOTA
Python编程中的反模式实例分析
2014/12/08 Python
利用Python绘制MySQL数据图实现数据可视化
2015/03/30 Python
Python中的异常处理简明介绍
2015/04/13 Python
对web.py设置favicon.ico的方法详解
2018/12/04 Python
Python实现的旋转数组功能算法示例
2019/02/23 Python
Python Django 实现简单注册功能过程详解
2019/07/29 Python
django项目登录中使用图片验证码的实现方法
2019/08/15 Python
详解解决jupyter不能使用pytorch的问题
2021/02/18 Python
合同专员岗位职责
2013/12/18 职场文书
师范学院毕业生求职信范文
2013/12/26 职场文书
企业年会主持词
2014/03/27 职场文书
同居协议书范本
2014/04/23 职场文书
中班上学期幼儿评语
2014/04/30 职场文书
教师自我剖析材料(群众路线)
2014/09/29 职场文书
优秀党员先进事迹材料
2014/12/18 职场文书
2014大学生学生会工作总结
2014/12/19 职场文书
杭州黄龙洞导游词
2015/02/10 职场文书
幼儿园大班开学寄语(2016秋季)
2015/12/03 职场文书
springboot集成springCloud中gateway时启动报错的解决
2021/07/16 Java/Android