当前位置: 首页 > news >正文

js实现点击查看全部/收起功能

在上一篇文章实现用js截取文本后,我的另一个需求也迎刃而解了。需求就是一段长文本需要溢出隐藏,然后点击全部时显示全部文本,点击收起又回到溢出隐藏的状态。实现的效果如下图:

实现的思路时点击全部时使用这条数据的原文本,点击收起时使用截取后的文本。而父元素的高度是由内部文本撑开的,所以点击全部时div的高度也会自动撑开。

this.state = {data: [],// 页面的数据expended: [],// 用来管理每条数据的全部/收起的数组
}getContent = (value, index) => {const { expended } = this.statereturn (<span><span>{expended[index]? value.content: noMoreWord(value.content, 50, '#0091ff')}</span>{this.needExpended(value, index)}</span>)
}//是否展示 全部/收起needExpended = (value, index) => {const { expended } = this.stateconst { content } = valueif (getStrLength(content) > 100) {return (<span style={{color: '#0091ff'}} onClick={() => this.seeMore(index)}>{expended[index]? '收起': '全部'}</span>)}else{return ''}}seeMore = (index) => {const { expended } = this.stateconst newExpended = [...expended]newExpended[index] = !newExpended[index]this.setState({expended: newExpended})}// react的render  
render() {return(this.state.data.map((value, index) => {<div><div>xxx</div><div>{this.getContent()}</div></div>}))
}

 代码中的noMoreWord()和getStrLength()可以去看我的上一篇文章js实现一行半文本的截取_郑板桥30的博客-CSDN博客,这里有对这两个方法的详细介绍。

http://www.lryc.cn/news/151938.html

相关文章:

  • 安全区域边界技术测评要求项
  • 基于YOLOV8模型的农作机器和行人目标检测系统(PyTorch+Pyside6+YOLOv8模型)
  • 我的私人笔记(安装hbase)
  • 【MySQL】用户管理
  • 音视频 ffmpeg命令转封装
  • 恢复已删除的git分支
  • ATF(TF-A)安全通告 TFV-3 (CVE-2017-7563)
  • 虚拟机Ubuntu18.04系统使用时所需要的便利配置选项
  • python内置函数
  • 线性思维和系统思维
  • 为什么要学习C++
  • eureka服务注册和服务发现
  • QT的介绍和优点,以及使用QT初步完成一个登录界面
  • MySQL教程
  • 深入理解协同过滤算法及其实现
  • 力扣:随即指针138. 复制带随机指针的链表
  • 【从0学习Solidity】合约入门 Hello Web3
  • awtk-ftpd 发布
  • 抽象轻松的C语言
  • 【力扣每日一题01】两数之和
  • 机器学习——手写数字识别
  • 【日积月累】后端刷题日志
  • Matlab在编码中增加CRC和交织功能
  • Css 设置从上到下的渐变色: 0到70%为yellow,然后线性地变成透明。
  • git在windows上安装
  • 快速上手GIT命令,现学也能登堂入室
  • 二进制安全虚拟机Protostar靶场 安装,基础知识讲解,破解STACK ZERO
  • python实现的一些方法,可以直接拿来用的那种
  • 通过HTTP进行并发的数据抓取
  • 《论文阅读21》Equivariant Multi-View Networks