JavaScript实现兼容IE6的收起折叠与展开效果实例
发布时间 - 2026-01-11 03:20:21 点击率:次本文实例讲述了JavaScript实现兼容IE6的收起折叠与展开效果。分享给大家供大家参考,具体如下:

收起折叠效果本身不难,但是div是否超出高度不应该利用innerHTML去判断,收起折叠的时候把所有div的innerHTML搞到一个变量又把一个变量的内容通过截取字符串的方式,又将其放到div。下面提供一种通过div本身固有的高度来判断div是否过高,如果过高则提供折叠收起的按钮。
div的高度通过document.getElementById("div的id").offsetHeight去判断,即使这个div的内容是通过后端输出的,document.getElementById("div的id").offsetHeight同样可以取到div的最终高度,比如如下代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>div折叠效果</title>
</head>
<body>
<div id="fold" style="border:1px #000 solid;height:100px;overflow:hidden">
<?php
echo "<p>s</p><p>s</p><p>s</p><p>s</p><p>s</p><p>s</p><p>s</p><p>s</p><p>s</p><p>s</p><p>s</p><p>s</p><p>s</p>";
?>
</div>
</body>
</html>
<script>
alert(document.getElementById("fold").offsetHeight);
</script>
运行结果如下:
那么,我就是可以根据div的高度来做文章了。做出如下的效果:
HTML布局如下,用一个id为fold的div将你要收起、展开的内容,夹起来。之后,在这个id为fold的div中放一个宽度为100%的按钮,设置一个id为more_btn的按钮,因为要在脚本处在加载网页就开始判断,id为fold的div的高度,如果id为fold的div的高度过小,这个id为more_btn的按钮就没有显示的必要了。同时,将这个放内容的div与button放在一个div里面。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>div折叠效果</title>
</head>
<body>
<div style="border:1px #000 solid;">
<div id="fold">
<p>占位置</p><p>占位置</p><p>占位置</p><p>占位置</p><p>占位置</p><p>占位置</p>
<p>占位置</p><p>占位置</p><p>占位置</p><p>占位置</p><p>占位置</p><p>占位置</p>
</div>
<button id="more_btn" style="width:100%" onclick="showmore(this)">查看更多</button>
</div>
</body>
</html>
关键是接下来的网页脚本,具体分两部分,一部分是网页加载部分,用于处理按钮显示否,div折叠否。还有一部分是按钮点击事件showmore。
<script type="text/javascript">
var div_height=document.getElementById("fold").offsetHeight;
var fold_flag=0;//用于标志现在的div是展开还是折叠,初始为0,以为折叠中
if(div_height<100){//根据div的高度是否少于100px,判断是否要隐藏按钮
document.getElementById("more_btn").style.display="none";
}
else{//将div的高度强制定为100px,同时超出部分隐藏
document.getElementById("fold").style.overflow="hidden";
document.getElementById("fold").style.height="100px";
}
//id为more_btn的按钮的点击事件,按钮被点击的时候,将自己传到这个事件中,形式参数为obj
function showmore(obj){
if (fold_flag == 0) {//展开的话,就是让div的高度根据其内容自适应,同时显示所有内容
document.getElementById("fold").style.overflow = "";
document.getElementById("fold").style.height = "";
obj.innerHTML="收起"//按钮的文字改变
fold_flag=1;//折叠标志为1,意味现在为打开状态
}
else{//收起就是回到原来的状态。
document.getElementById("fold").style.overflow="hidden";
document.getElementById("fold").style.height="100px";
obj.innerHTML="查看更多"
fold_flag=0;
}
}
</script>
不想用按钮,你也可以设置一个居中的超级链接。
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript页面元素操作技巧总结》、《JavaScript正则表达式技巧大全》、《JavaScript查找算法技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript错误与调试技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
# JavaScript
# 兼容
# IE6
# 收起折叠
# 展开
# JavaScript实现文字展开和收起效果
# vue.js 实现点击展开收起动画效果
# 原生JS仿QQ阅读点击展开、收起效果
# 原生js实现新闻列表展开/收起全文功能
# JavaScript控制网页层收起和展开效果的方法
# 一个封装js代码-----展开收起效果示例
# 自己写了一个展开和收起的多更能型的js效果
# 慢慢展开再慢慢收起的javascript广告效果
# css+js制作不定高度展开收起动画详解
# 过高
# 查看更多
# 加载
# 放在
# 相关内容
# 在这个
# 你要
# 遍历
# 要在
# 感兴趣
# 数据结构
# 给大家
# 来做
# 要了
# 可以根据
# 又将
# 更多关于
# 你也可以
# 又把
# 想用
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在宝塔面板创建新站点?
Laravel如何使用Vite进行前端资源打包?(配置示例)
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
如何确保FTP站点访问权限与数据传输安全?
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
制作旅游网站html,怎样注册旅游网站?
如何快速搭建高效简练网站?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
phpredis提高消息队列的实时性方法(推荐)
如何彻底删除建站之星生成的Banner?
如何快速查询网址的建站时间与历史轨迹?
Linux系统命令中screen命令详解
英语简历制作免费网站推荐,如何将简历翻译成英文?
个人摄影网站制作流程,摄影爱好者都去什么网站?
如何在Windows服务器上快速搭建网站?
使用C语言编写圣诞表白程序
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
JavaScript如何实现错误处理_try...catch如何捕获异常?
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
如何在IIS中新建站点并解决端口绑定冲突?
如何获取PHP WAP自助建站系统源码?
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
利用 Google AI 进行 YouTube 视频 SEO 描述优化
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】
如何在Windows虚拟主机上快速搭建网站?
今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】
如何基于PHP生成高效IDC网络公司建站源码?
JS去除重复并统计数量的实现方法
如何快速辨别茅台真假?关键步骤解析
Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
javascript读取文本节点方法小结
高性价比服务器租赁——企业级配置与24小时运维服务
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
百度输入法ai组件怎么删除 百度输入法ai组件移除工具
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用

