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 相关文章推荐
JS面向对象、prototype、call()、apply()
May 14 Javascript
ext 列表页面关于多行查询的办法
Mar 25 Javascript
jQuery 设置 CSS 属性示例介绍
Jan 16 Javascript
鼠标移到图片上变大显示而不是放大镜效果
Jun 15 Javascript
jQuery实现带动画效果的二级下拉导航方法
Mar 11 Javascript
jQuery实现hover合成事件的方法
Aug 06 Javascript
js实现鼠标左右移动,图片也跟着移动效果
Jan 25 Javascript
微信小程序url与token设置详解
Sep 26 Javascript
vue2.0 axios跨域并渲染的问题解决方法
Mar 08 Javascript
vue组件的写法汇总
Apr 12 Javascript
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
May 08 Javascript
JavaScript点击按钮生成4位随机验证码
Jan 28 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入门学习知识点五 关于php数组的几个基本操作
2011/07/14 PHP
mysql,mysqli,PDO的各自不同介绍
2012/09/19 PHP
基于php实现长连接的方法与注意事项的问题
2013/05/10 PHP
php实现的CSS更新类实例
2014/09/22 PHP
ThinkPHP入口文件设置及相关注意事项分析
2014/12/05 PHP
session 加入redis的实现代码
2016/07/15 PHP
Zend Framework上传文件重命名的实现方法
2016/11/25 PHP
javascript圆盘抽奖程序实现原理和完整代码例子
2014/06/03 Javascript
再谈JavaScript线程
2015/07/10 Javascript
jquery实现向下滑出的二级导航下滑菜单效果
2015/08/25 Javascript
javascript设计简单的秒表计时器
2020/09/05 Javascript
jQuery mobile 移动web(4)
2015/12/20 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
2016/08/05 Javascript
基于Javascript实现的不重复ID的生成器
2016/12/25 Javascript
浅谈angularjs中响应回车事件
2017/04/24 Javascript
ionic实现下拉刷新载入数据功能
2017/05/11 Javascript
vue.js编译时给生成的文件增加版本号
2018/09/17 Javascript
小程序文字跑马灯效果
2018/12/28 Javascript
在 Vue 中使用 JSX 及使用它的原因浅析
2020/02/10 Javascript
ssh批量登录并执行命令的python实现代码
2012/05/25 Python
Python的高级Git库 Gittle
2014/09/22 Python
Python pass详细介绍及实例代码
2016/11/24 Python
详解python之协程gevent模块
2018/06/14 Python
win10下tensorflow和matplotlib安装教程
2018/09/19 Python
总结python 三种常见的内存泄漏场景
2020/11/20 Python
详解python中的异常捕获
2020/12/15 Python
W3C公布最新的HTML5标准草案
2008/10/17 HTML / CSS
伊利莎白雅顿官网:Elizabeth Arden
2016/10/10 全球购物
Etam德国:内衣精品店
2019/08/25 全球购物
上班睡觉检讨书
2014/01/09 职场文书
校园联欢晚会主持词
2014/03/17 职场文书
办公用房租赁协议书
2014/11/29 职场文书
客户经理岗位职责
2015/01/31 职场文书
离婚答辩状怎么写
2015/05/22 职场文书
CSS3 制作的悬停缩放特效
2021/04/13 HTML / CSS
springcloud之Feign超时问题的解决
2021/06/24 Java/Android