本文实例讲述了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制作不定高度展开收起动画详解
# 过高
# 查看更多
# 加载
# 放在
# 相关内容
# 在这个
# 你要
# 遍历
# 要在
# 感兴趣
# 数据结构
# 给大家
# 来做
# 要了
# 可以根据
# 又将
# 更多关于
# 你也可以
# 又把
# 想用
相关文章:
如何做静态网页,sublimetext3.0制作静态网页?
如何通过山东自助建站平台快速注册域名?
动图在线制作网站有哪些,滑动动图图集怎么做?
教学网站制作软件,学习*后期制作的网站有哪些?
如何通过多用户协作模板快速搭建高效企业网站?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
简历在线制作网站免费版,如何创建个人简历?
北京企业网站设计制作公司,北京铁路集团官方网站?
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
如何通过可视化优化提升建站效果?
如何在局域网内绑定自建网站域名?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
郑州企业网站制作公司,郑州招聘网站有哪些?
如何挑选最适合建站的高性能VPS主机?
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
css网站制作参考文献有哪些,易聊怎么注册?
建站上市公司网站建设方案与SEO优化服务定制指南
建站之星2.7模板:企业网站建设与h5定制设计专题
建站之星如何快速生成多端适配网站?
如何生成腾讯云建站专用兑换码?
建站10G流量真的够用吗?如何应对访问高峰?
如何通过西部数码建站助手快速创建专业网站?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
如何在万网自助建站平台快速创建网站?
上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
已有域名和空间,如何快速搭建网站?
建站之星CMS五站合一模板配置与SEO优化指南
建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
如何快速查询网址的建站时间与历史轨迹?
宝塔面板如何快速创建新站点?
如何通过VPS建站无需域名直接访问?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
建站之星安装后界面空白如何解决?
建站主机是什么?如何选择适合的建站主机?
网站制作难吗安全吗,做一个网站需要多久时间?
建站之星备案是否影响网站上线时间?
Python如何创建带属性的XML节点
如何通过服务器快速搭建网站?完整步骤解析
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
韩国服务器如何优化跨境访问实现高效连接?
如何快速查询域名建站关键信息?
如何通过cPanel快速搭建网站?
如何用wdcp快速搭建高效网站?
建站之星北京办公室:智能建站系统与小程序生成方案解析
建站之星如何实现PC+手机+微信网站五合一建站?
*请认真填写需求信息,我们会在24小时内与您取得联系。