原生JS仿QQ阅读点击展开、收起效果
作者:Vampire-blog 发布时间:2024-04-22 13:25:17
标签:js,点击展开,点击收起
使用JS技术实现QQ阅读类似的点击展开、收起效果,具体内容如下
一、定义展开函数showdiv(),实现点击"全文"按钮,全文展开。
1.点击展开函数,需要将触发点击事件的按钮作为参数传入
2.通过传入的按钮,查找其父元素,将其父元素设置为隐藏。
3.将紧跟其父元素之后的元素设置为显示。
二、定义收起函数hidediv(),实现点击"收起全文"按钮,全文内容隐藏。
1.点击收起函数,需要将触发点击事件的按钮作为参数传入
2.通过传入的按钮,查找其父元素,将其父元素设置为隐藏。
3.将紧跟其父元素之前的元素设置为显示。
注意:为了浏览器兼容,一定要判断找到的节点nodeType是否为元素节点。
效果如图:
具体代码:
<!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="#" 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="#" 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="#" 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="#" class="btn" onclick='hidediv(this)'>收起全文</a>
</div>
</div>
</div>
</div>
</body>
</html>


猜你喜欢
- PEP 3107引入了功能注释的语法,PEP 484 加入了类型检查标准库 typing 为类型提示指定的运行时提供支持。示例:def f(
- 前言在本文中,我将展示如何将对象从一个图像添加到另一个图像。为此,我们需要:1.背景图像;2.对象3.对象的mask(mask为黑色,其他空
- 简述Motivationsometimes,换一种获取数据的方式,可以提高数据获取的速度。sometimes,由于预计爬取的数据长度不确定,
- 前言:决策树是梯度提升机和随机森林的基本构建块,在学习这些模型的工作原理和模型可解释性时,可视化决策树是一个非常有帮助。不过,当前的可视化包
- 前言CAPTCHA全称Completely Automated Public Turing Test to Tell Computers a
- JDBC数据库连接MySQL中建表在终端使用命令mysql -u root -p打开数据库,在数据库操作环境下进行创建数据库,建表等等操作建
- ASP+XML制作菜单管理!menu.asp 这个是前台执行部分<% '----------------
- 在oracle中有很多关于日期的函数,如:1、add_months()用于从一个日期值增加或减少一些月份 date_value:=add_m
- 1.window.event兼容脚本 2.屏蔽Form提交事件 3.获取事件源 4.添加事件兼容写法 5.Firefox注册innerTex
- 树形目录显示程序问题描述:在我们项目中常常会出现自关联的数据表,如果我们从整体看去,整个表就呈现为一个树形数据结构(对于复杂的情况,它可能变
- asp之家注:本文介绍了使用asp来获取access数据库中的一条随机记录的方法,简单实用,相信对初学者有所帮助,根据这个方法其实我们可以实
- 前面一篇我们已经把unittest的常用用法都已经讲过了,可能很多小伙伴有个疑问,unittest框架怎么做数据驱动呢?这节我们就来学习一下
- 一、使用全局变量保存单例这是最简单的实现方法function Person(){ this.createTime=new Da
- 介绍二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元
- 一. 抛出异常Python用异常对象(exception object)表示异常情况,遇到错误后,会引发异常。如果异常对象并未被处理或捕捉,
- 反射是在PHP运行状态中,扩展分析PHP程序,导出或提取出关于类、方法、属性、参数等的详细信息,包括注释。这种动态获取的信息以及动态调用对象
- python是一款简单易用的编程语言,特别是其第三方库,能够方便我们快速进入工作,但其第三方库的安装困扰很多人.现在安装python时,已经
- gRPCgRPC远程过程调用框架是基于动作的模式,类似远程调用微服务。这使得gRPC成为一种围绕Protobufs构建的进程间通信(IPC)
- 顺序执行顺序执行是我们比较熟悉的工作模式,类似俗称流水账编程。所有不含分支、循环和goto语言,并且每一递归调用的Go函数一般都是顺序执行的
- 1、通过requests.get方法r = requests.get("http://200.20.3.20:8080/job/C