vue 容超出三行之后显示下拉箭头 (可适配富文本)

问题提出:后台返回富文本,前端实现内容超出三行之后显示下拉箭头,展示全部,还可以收起
难点:富文本内容不稳定 会出现换行等 或者字体大小问题会印象
ps: 就算不是富文本只是正常的文章也是可以使用的呢

思路: 1.给文本设置行高30 ,总行高 高度超出 90 即可显示箭头
2.超出90 之后才显示 省略号(需要控制class动态添加)

易误区 1.提前添加省略号导致无法成功 2.给盒子设定了固定高度 导致无法成功

<template>
  <div>
    <div class="Details_box_TheIntroduced">
      <div class="content" id="textContainer" >
        <div :class="[isShowZK == true ? 'overOld' : 'is_content']" class='content_box' >
          <div v-html='list.desc' ref="more" ></div>
        </div>
      </div>
      <div v-if="arrows" >
        <div class="icn_general_below hovercli"  v-if="isShowZK" @click="isShowZK = false">
          <img src="@/assets/img/stri_unfold.png" alt="">
        </div>
        <div class="icn_general_below hovercli" v-if="!isShowZK" @click="isShowZK = true">
          <img src="@/assets/img/packUp.png" alt="">
        </div>
      </div>
    </div>
  </div>
</template>

<script>
import ScriptListParticulars from '@/serve/ScriptListParticulars'
export default ScriptListParticulars
</script>

<style lang="less">
.content{
  background: peachpuff;
}
.content_box{
  background: peachpuff ;
  line-height: 50px ;
  -webkit-line-clamp: 2;
}

.overOld{
  word-wrap: break-word;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-box-orient: vertical;
}
.is_content{
  height: 100%;
  -webkit-line-clamp: 2;
  background: papayawhip;
}
复制代码

js页面

watch: {
    list() {
        this.$nextTick(() => {
            let oneHeight = this.$refs.more.clientHeight
            if (oneHeight > 90) {
                this.isShowZK = true
                this.arrows = true
            } else {
                this.isShowZK = false
            }
        })
    },
   }
复制代码

代码解析 :
this.$refs.more.clientHeight 获取到文本域的高度

90 是我单个行高是 30 * 3 = 90 可以根据具体情况修改
arrows 代表的是必须是 超出之后才可以显示箭头 :
有人会问 那为什么不能直接使用 isShowZK 做判断呢 是因为 isShowZK等于false的话 就不会显示下拉箭头了 或者就是 isShowZK == false 的时候 也会显示其中一个箭头

下面的是自己修改了一些样式

作者:柠檬i
链接:https://juejin.cn/post/7174691739981053989
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值