原生JS仿QQ阅读点击展开、收起效果


Posted in Javascript onMarch 08, 2017

使用JS技术实现QQ阅读类似的点击展开、收起效果,具体内容如下

一、定义展开函数showdiv(),实现点击"全文"按钮,全文展开。

1.点击展开函数,需要将触发点击事件的按钮作为参数传入
2.通过传入的按钮,查找其父元素,将其父元素设置为隐藏。
3.将紧跟其父元素之后的元素设置为显示。

二、定义收起函数hidediv(),实现点击"收起全文"按钮,全文内容隐藏。

1.点击收起函数,需要将触发点击事件的按钮作为参数传入
2.通过传入的按钮,查找其父元素,将其父元素设置为隐藏。
3.将紧跟其父元素之前的元素设置为显示。

注意:为了浏览器兼容,一定要判断找到的节点nodeType是否为元素节点。

效果如图:

原生JS仿QQ阅读点击展开、收起效果

具体代码:

<!DOCTYPE html>
<html>
<head lang="en">
 <meta charset="UTF-8">
 <title></title>
 <style type="text/css">
 body
 {
  margin: 0 auto;
  padding: 0;
  font-size: 9pt;
  line-height: 180%;
 }
 #pn
 {
  background: #f8f8f8;
  height: auto;
  width: 750px;
  margin: 0 auto;
  padding: 5px;
 }
 .artTitle
 {
  font-weight: bold;
  color: #3030FF;
  font-size: 11pt;
 }
 .subTitle
 {
  color: #CCC;
 }
 .content
 {
  border: 1px solid #CCC;
  display: none;
  padding: 5px;
 }
 .btm
 {
  text-align: right;
  height: 30px;
 }
 .btn
 {
  width: 80px;
  height: 20px;
  padding: 5px 3px 5px 3px;
  text-align: center;
  text-decoration: none;
  background: #f0f0f0;
  border: 1px solid #CCC;
 }
 </style>
 <script type="text/javascript">
 // 显示函数
 function showdiv(obj) {
  var x=obj.parentNode;
  var y=x.nextSibling;
  while(y.nodeType!=1){
  y=y.nextSibling;
  }
  x.style.display="none";
  y.style.display="block";
 }

 // 隐藏函数
 function hidediv(obj) {

  var x=obj.parentNode.parentNode;
  var y=x.previousSibling;
  while(y.nodeType!=1){
  y=y.previousSibling;
  }
  x.style.display="none";
  y.style.display="block";
 }
 </script>
</head>
<body>
<div id="pn">
 <div id="art0">
 <p class="artTitle">
  Slack:团队日常沟通协作工具典范
 </p>
 <p class="subTitle">
  作者:来自网络 发表时间:2014-3-1
 </p>
 <p>
  现在可以在Slack.com上申请成为试用用户,这是一个面对企业、团队的协作工具,似乎需要试用企业域名后缀的邮箱。 Slack从目前看,基本符合我对团队沟通工具的完全要求。特点如下:
  在所有端都可以进行,即桌面端,包括Mac OS和Windows系统;web端即浏览器;移动端的支持包括iOS和Android。 同时,移动端是有良好体验以满足移动办公便利性的。
  聚焦核心行为,即"发布一条信息",团队成员只需要做一个这个基本行为即可。 发布一条... <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="javascript:showdiv(this);" >展开全文</a></p>
 <div class="content">
  <p>现在可以在Slack.com上申请成为试用用户,这是一个面对企业、团队的协作工具,似乎需要试用企业域名后缀的邮箱。 Slack从目前看,基本符合我对团队沟通工具的完全要求。特点如下:</p>
  <p>聚焦核心行为,即“发布一条信息”,团队成员只需要做一个这个基本行为即可。</p>
  <p>发布一条信息这个行为可以扩展成为该信息是一个图片或者一个文件等,以便协作更好进行,如果文件能快速预览则更好。</p>
  <p>支持@方式直接和单个团队成员沟通,并且能够被其他成员看到和参与进来。</p>
  <p>以#来进行快速形成话题组或者项目组。</p>
  <p>良好的搜索支持。 上述虽然是Slack的特性,也是我对团队日常协作工具的要求——显然,Slack完全符合这些要求,而且产品做得很易用。这些要求其实就是我对“移动、社交、云端存储”的理解,这三个因素基本会重写很多软件和应用。</p>
  <p>Slack有免费的lite版本,但收费版本似乎价格对中文用户而言略高。</p>
  <p>Slack由我很喜欢的项目Flickr的创始人新公司TinySpeck创办,因此基础甚好。而且从目前看,基本上会成为一个很成功的应用,所以在产品持续发展上面应该毫无问题。</p>
  <p>The post Slack:团队日常沟通协作工具典范 appeared first on 游山打猎.</p>
  <div class="btm">
  <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="btn" onclick="javascript:hidediv(this);">收起全文</a>
  </div>
 </div>
 </div>
 <hr />
 <div id="art1">
 <p class="artTitle">
  Slack:团队日常沟通协作工具典范
 </p>
 <p class="subTitle">
  作者:来自网络 发表时间:2014-3-1
 </p>
 <p>现在可以在Slack.com上申请成为试用用户,这是一个面对企业、团队的协作工具,似乎需要试用企业域名后缀的邮箱。 Slack从目前看,基本符合我对团队沟通工具的完全要求。特点如下:
  在所有端都可以进行,即桌面端,包括Mac OS和Windows系统;web端即浏览器;移动端的支持包括iOS和Android。 同时,移动端是有良好体验以满足移动办公便利性的。
  聚焦核心行为,即"发布一条信息",团队成员只需要做一个这个基本行为即可。 发布一条... <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="javascript:showdiv(this);">展开全文</a></p>
 <div class="content">
  <p>现在可以在Slack.com上申请成为试用用户,这是一个面对企业、团队的协作工具,似乎需要试用企业域名后缀的邮箱。 Slack从目前看,基本符合我对团队沟通工具的完全要求。特点如下:</p>
  <p>在所有端都可以进行,即桌面端,包括Mac OS和Windows系统;web端即浏览器;移动端的支持包括iOS和Android。</p>
  <p>同时,移动端是有良好体验以满足移动办公便利性的。</p>
  <p>聚焦核心行为,即“发布一条信息”,团队成员只需要做一个这个基本行为即可。</p>
  <p>发布一条信息这个行为可以扩展成为该信息是一个图片或者一个文件等,以便协作更好进行,如果文件能快速预览则更好。</p>
  <p>支持@方式直接和单个团队成员沟通,并且能够被其他成员看到和参与进来。</p>
  <p>The post Slack:团队日常沟通协作工具典范 appeared first on 游山打猎.</p>
  <div class="btm">
  <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="btn" onclick='hidediv(this)'>收起全文</a>
  </div>
 </div>
 </div>
</div>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于JQuery的密码强度验证代码
Mar 01 Javascript
简略的前端架构心得&amp;&amp;基于editor为例子的编码小技巧
Nov 25 Javascript
JS判断元素为数字的奇异写法分享
Aug 01 Javascript
JS限制上传图片大小不使用控件在本地实现
Dec 19 Javascript
ExtJs设置GridPanel表格文本垂直居中示例
Jul 15 Javascript
jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮
Oct 11 Javascript
js构造函数、索引数组和属性的实现方式和使用
Nov 16 Javascript
网页收藏夹显示ICO图标(代码少)
Aug 04 Javascript
通过js修改input、select默认字体颜色
Apr 19 Javascript
通过js动态创建标签,并设置属性方法
Feb 24 Javascript
微信小程序实现的一键复制功能示例
Apr 24 Javascript
vue弹出框组件封装实例代码
Oct 31 Javascript
jQuery插件zTree实现删除树子节点的方法示例
Mar 08 #Javascript
解析jquery easyui tree异步加载子节点问题
Mar 08 #Javascript
bootstrap datetimepicker 日期插件在火狐下出现一条报错信息的原因分析及解决办法
Mar 08 #Javascript
jQuery使用EasyUi实现三级联动下拉框效果
Mar 08 #Javascript
教你用十行node.js代码读取docx的文本
Mar 08 #Javascript
jQuery插件zTree实现获取一级节点数据的方法
Mar 08 #Javascript
JS正则表达式验证账号、手机号、电话和邮箱是否合法
Mar 08 #Javascript
You might like
php 分页类 扩展代码
2009/06/11 PHP
php与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
2015/12/22 PHP
屏蔽PHP默认设置中的Notice警告的方法
2016/05/20 PHP
JS 无法通过W3C验证的处理方法
2010/03/09 Javascript
javascript中字符串替换函数replace()方法与c# 、vb 替换有一点不同
2010/06/25 Javascript
JavaScript高级程序设计 阅读笔记(十七) js事件
2012/08/14 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
浅谈类似于(function(){}).call()的js语句
2015/03/30 Javascript
基于jquery实现瀑布流布局
2020/06/28 Javascript
即将发布的jQuery 3 有哪些新特性
2016/04/14 Javascript
JavaScript数组方法大全(推荐)
2016/07/05 Javascript
javascript中的面向对象
2017/03/30 Javascript
JS实现禁止高频率连续点击的方法【基于ES6语法】
2017/04/25 Javascript
快速掌握jquery分页插件jqPaginator的使用方法
2017/08/09 jQuery
JS去掉字符串中所有的逗号
2017/10/18 Javascript
如何在JavaScript中优雅的提取循环内数据详解
2019/03/04 Javascript
js通过循环多张图片实现动画效果
2019/12/19 Javascript
详解Python中的循环语句的用法
2015/04/09 Python
Python线程中对join方法的运用的教程
2015/04/09 Python
python同时给两个收件人发送邮件的方法
2015/04/30 Python
Python语言描述连续子数组的最大和
2018/01/04 Python
Python pandas常用函数详解
2018/02/07 Python
windows下添加Python环境变量的方法汇总
2018/05/14 Python
python实现简单http服务器功能
2018/09/17 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
2018/12/16 Python
python itsdangerous模块的具体使用方法
2020/02/17 Python
python下载卫星云图合成gif的方法示例
2020/02/18 Python
HTML5 Video/Audio播放本地文件示例介绍
2013/11/18 HTML / CSS
德国baby-markt婴儿用品瑞士网站:baby-markt.ch
2017/06/09 全球购物
视光学专业自荐信
2014/06/24 职场文书
关于保护环境的建议书
2014/08/26 职场文书
传承焦裕禄精神思想汇报2014
2014/09/10 职场文书
高三毕业感言
2015/07/30 职场文书
担保书怎么写 ?
2019/04/22 职场文书
Vue Element-ui表单校验规则实现
2021/07/09 Vue.js