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之Document元素选择器篇
Aug 14 Javascript
javascript预览上传图片发现的问题的解决方法
Nov 25 Javascript
jquery异步跨域访问代码
Jun 28 Javascript
js判断为空Null与字符串为空简写方法
Feb 24 Javascript
js实现文本框中输入文字页面中div层同步获取文本框内容的方法
Mar 03 Javascript
JavaScript简单修改窗口大小的方法
Aug 03 Javascript
AngularJS控制器之间的数据共享及通信详解
Aug 01 Javascript
微信小程序 textarea 组件详解及简单实例
Jan 10 Javascript
源码分析Vue.js的监听实现教程
Apr 23 Javascript
Vue侧滑菜单组件——DrawerLayout
Dec 18 Javascript
彻底理解js面向对象之继承
Feb 04 Javascript
jQuery实现简单复制json对象和json对象集合操作示例
Jul 09 jQuery
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
服务器端解压缩zip的脚本
2006/12/22 PHP
php 验证码制作(网树注释思想)
2009/07/20 PHP
PHP Hash算法:Times33算法代码实例
2015/05/13 PHP
PHPExcel简单读取excel文件示例
2016/05/26 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
php微信开发之关注事件
2018/06/14 PHP
php 后端实现JWT认证方法示例
2018/09/04 PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
2019/10/15 PHP
js获取时间(本周、本季度、本月..)
2013/11/22 Javascript
判断及设置浏览器全屏模式
2014/04/20 Javascript
给应用部分的js代码设定一个统一的入口
2014/06/15 Javascript
jQuery过滤特殊字符及JS字符串转为数字
2016/05/26 Javascript
javascript实现简易计算器的代码
2016/05/31 Javascript
vue2.0多条件搜索组件使用详解
2020/03/26 Javascript
vue弹窗消息组件的使用方法
2020/09/24 Javascript
自定义Vue组件打包、发布到npm及使用教程
2019/05/22 Javascript
createObjectURL方法实现本地图片预览
2019/09/30 Javascript
javascript设计模式之迭代器模式
2020/01/30 Javascript
JS通过识别id、value值对checkbox设置选中状态
2020/02/19 Javascript
Python Tkinter简单布局实例教程
2014/09/03 Python
Python数据可视化编程通过Matplotlib创建散点图代码示例
2017/12/09 Python
Laravel+Dingo/Api 自定义响应的实现
2019/02/17 Python
Python-Tkinter Text输入内容在界面显示的实例
2019/07/12 Python
python项目对接钉钉SDK的实现
2019/07/15 Python
python DataFrame转dict字典过程详解
2019/12/26 Python
基于python-pptx库中文文档及使用详解
2020/02/14 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
2020/05/22 Python
经典c++面试题六
2012/01/18 面试题
索桥的故事教学反思
2014/02/06 职场文书
国际贸易专业求职信
2014/06/04 职场文书
求职自我推荐信
2014/06/25 职场文书
新员工考核评语
2014/12/31 职场文书
索赔员岗位职责
2015/02/15 职场文书
教师素质教育心得体会
2016/01/19 职场文书
CSS3 天气图标动画效果
2021/04/06 HTML / CSS
Android开发手册自定义Switch开关按钮控件
2022/06/10 Java/Android