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 相关文章推荐
激活 ActiveX 控件
Oct 09 Javascript
斜45度寻路实现函数
Aug 20 Javascript
jquery图片上下tab切换效果
Mar 18 Javascript
提升你网站水平的jQuery插件集合推荐
Apr 19 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
Dec 04 Javascript
提升jQuery的性能需要做好七件事
Jan 11 Javascript
JavaScript中将数组进行合并的基本方法讲解
Mar 07 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
Sep 24 Javascript
浅谈在js传递参数中含加号(+)的处理方式
Oct 11 Javascript
bootstrap fileinput 上传插件的基础使用
Feb 17 Javascript
页面缩放兼容性处理方法(zoom,Firefox火狐浏览器)
Aug 29 Javascript
原生JS实现顶部导航栏显示按钮+搜索框功能
Dec 25 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 daodb插入、更新与删除数据
2009/03/19 PHP
那些年我们错过的魔术方法(Magic Methods)
2014/01/14 PHP
解决laravel5中auth用户登录其他页面获取不到登录信息的问题
2019/10/08 PHP
如何在标题栏显示框架内页面的标题
2007/02/03 Javascript
通过Javascript创建一个选择文件的对话框代码
2012/06/16 Javascript
Js实现自定义右键行为
2015/03/26 Javascript
Jquery 分页插件之Jquery Pagination
2015/08/25 Javascript
js实现横向伸展开的二级导航菜单代码
2015/08/28 Javascript
用js实现放大镜的效果的简单实例
2016/05/23 Javascript
JS控制TreeView的结点选择
2016/11/11 Javascript
webpack进阶——缓存与独立打包的用法
2017/08/02 Javascript
vue实现pdf导出解决生成canvas模糊等问题(推荐)
2018/10/18 Javascript
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
2019/05/27 jQuery
[36:19]2018DOTA2亚洲邀请赛 小组赛 A组加赛 Newbee vs LGD
2018/04/03 DOTA
python中as用法实例分析
2015/04/30 Python
实例讲解Python中SocketServer模块处理网络请求的用法
2016/06/28 Python
Python cookbook(数据结构与算法)根据字段将记录分组操作示例
2018/03/19 Python
详解python之heapq模块及排序操作
2019/04/04 Python
dpn网络的pytorch实现方式
2020/01/14 Python
pytorch forward两个参数实例
2020/01/17 Python
浅谈tensorflow之内存暴涨问题
2020/02/05 Python
Python3爬虫里关于代理的设置总结
2020/07/30 Python
Html5页面二次分享的实现
2018/07/30 HTML / CSS
纪伊国屋新加坡网上书店:Kinokuniya新加坡
2017/12/29 全球购物
美国转售二手商品的电子商务平台:BLINQ
2018/12/13 全球购物
Madda Fella官网:美国冒险家服装品牌
2020/01/16 全球购物
机械设计及其自动化专业推荐信
2013/10/31 职场文书
服务承诺书怎么写
2014/05/24 职场文书
国际金融专业自荐信
2014/07/05 职场文书
高中军训的心得体会
2014/09/01 职场文书
单位工作证明格式模板
2014/10/04 职场文书
2014年军人思想汇报范文
2014/10/12 职场文书
干部年终考核评语
2015/01/04 职场文书
2019朋友新婚祝福语精选
2019/10/10 职场文书
Mysql systemctl start mysqld报错的问题解决
2021/06/03 MySQL