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

这篇具有很好参考价值的文章主要介绍了js实现点击查看全部/收起功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

js实现点击查看全部/收起功能,js,javascript,前端

js实现点击查看全部/收起功能,js,javascript,前端

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

this.state = {
    data: [],// 页面的数据
    expended: [],// 用来管理每条数据的全部/收起的数组
}

getContent = (value, index) => {
    const { expended } = this.state
      return (
        <span>
          <span>{expended[index]? value.content: noMoreWord(value.content, 50, '#0091ff')}</span>
          {this.needExpended(value, index)}
        </span>
      )
}

  //是否展示 全部/收起
  needExpended = (value, index) => {
    const { expended } = this.state
    const { content } = value
    if (getStrLength(content) > 100) {
      return (
        <span style={{color: '#0091ff'}} onClick={() => this.seeMore(index)}>{expended[index]? '收起': '全部'}</span>
      )
    }else{
      return ''
    }
  }

  seeMore = (index) => {
    const { expended } = this.state
    const 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博客,这里有对这两个方法的详细介绍。文章来源地址https://www.toymoban.com/news/detail-692996.html

到了这里,关于js实现点击查看全部/收起功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JavaScript实现点击复制(JS访问剪贴板相关)

    一、具体代码 ​ 网页前端开发中有时会出现这样的场景:让用户点击某个按钮,然后就能直接复制对应的文本内容,让用户可以将文本内容粘贴到想要粘贴的地方,常用于分享功能模块中。如果想要实现这种效果就需要我们去访问用户的剪贴板,然后把想要复制的内容写入

    2024年02月11日
    浏览(9)
  • js实现点击音频实现播放功能

    html: css: js:

    2024年02月02日
    浏览(12)
  • 记录--前端实现点击选词功能

    今天有一个需求,点击选中某个英文单词,然后对这个单词做一些处理,例如高亮背景、查看一些详细信息等等,今天简单实现了一下,效果如下:(支持移动端,chrome和sarafi浏览器均能正常使用。语言🚀 vue3 + typescript) 由于要动态添加给某些单词动态添加一些标签,我们

    2024年02月03日
    浏览(14)
  • HTML JS实现点击按钮下载文件功能例子(C知道版)

            其实这篇应该算是一篇“水”文章,为什么要这么“水”呢,除了最近南方的气候闷热难耐需要降温之外,另一个主要原因,这里面所写的代码均是由CSDN的AI文本大模型\\\"C知道\\\"完成,我在这里只是简单记录一下,也方便其他有需求的同学借鉴一下,少绕一些弯路(有

    2024年02月15日
    浏览(9)
  • Android实现超出固定行数折叠文字“查看全文“、“收起全文“

    网上有很多关于这个的代码,实现都过于复杂了,github上甚至还看到一篇文章600多行代码,结果一跑起来全是bug。还是自己写吧!!! 如果我们需要换行的 \\\"查看全文\\\"、\\\"收起全文\\\" 效果那没什么号说的,因为可以直接用两个TextView然后通过判断超过行数还是没有超过行数来判

    2024年02月13日
    浏览(6)
  • el-tree 树全部展开或收起

    绑定属性expanded,树自带方法this.$refs.tree.store.root.expanded,在mounted方法中给树方法赋值expandAll = false,具体代码实现详情如下: html代码: js代码:

    2024年02月17日
    浏览(14)
  • 微信小程序实现一个文字展开收起功能

    需求很常见,就是当一行文字过多时,显示省略号,然后显示 展开 两个字,点击,文字完全展示开,点击 收起 ,回到省略形式,如下图 有了上图,应该能更好理解,让我们再来细致分析下思路: 一行省略号 ,这个没啥难度,css可以实现(至于多行,差别不大) 展开和收

    2024年02月09日
    浏览(14)
  • 记录--不定高度展开收起动画 css/js 实现

    最近在做需求的时候,遇见了元素高度展开收起的动画需求,一开始是想到了使用 transition: all .3s; 来做动画效果,在固定高度的情况下, transition 动画很好使,满足了需求,但是如果要考虑之后可能还会有更改的情况下,如果每次都是用固定高度来做动画,会显得很繁琐,也

    2024年02月11日
    浏览(23)
  • vue+face-api.js实现前端人脸识别功能

    近期做了一个前端vue实现人脸识别的功能,主要功能逻辑包含:人脸识别,人脸验证,唤起摄像头视频流之后从三个事件(用户点头、摇头、眨眼睛)中随机选中两个事件,待两个事件通过判断后人脸静止不动3秒钟后截取视频流生成图片,上传到阿里或者腾讯oss,通过oss返回

    2024年02月05日
    浏览(10)
  • WebMagic - 创意前端项目集合(点击链接可在电脑上查看效果)

    欢迎来到 WebMagic 仓库!这里汇集了一系列令人惊叹的前端项目,涵盖了HTML5、CSS3和JS等多项技术。无论你是前端开发者、设计师,还是对创意互动内容感兴趣的人,这个仓库都将为你带来无尽的惊喜。 每个项目都经过精心设计和编码,具有清晰的文档,让你轻松上手。请随意

    2024年02月12日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包