全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

JavaScript实现兼容IE6的收起折叠与展开效果实例

本文实例讲述了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小时内与您取得联系。