首页 > 其他分享 >PC端文字过多展开收起跟在...后面(可自定义行数)

PC端文字过多展开收起跟在...后面(可自定义行数)

时间:2024-08-09 09:23:49浏览次数:15  
标签:... const 自定义 color text value PC ref desc

话不多说直接上代码,可直接复制根据需求修改
TextMore.vue

<template>

  <div>

    <div class="yuanqu-con" :style="{ '--beforeHeight': beforeHeight }">

      <div :style="{ '-webkit-line-clamp': row }" class="text" v-if="isAll == 0" ref="myDiv">

        <span class="btn" @click="lookmore" v-if="isMore == 1">查看更多</span>

        <div class="text-con" ref="textMore">

          {{ desc }}

        </div>

      </div>

      <div v-if="isAll == 1">{{ desc }} <span class="Packup" @click="isAll = 0">收起</span></div>

    </div>

    <div class="play" style="opacity: 0; height: 0px; line-height: 24px; overflow-y: auto">

      <div ref="nonetext">{{ desc }}</div>

    </div>

  </div>

</template>



<script setup>

import { onMounted, ref, defineProps, nextTick } from 'vue';

const props = defineProps({

  desc: {

    type: String,

    default: '',

  },

  row: {

    type: Number,

    default: 3,

  },

});

const beforeHeight = ref('48px');

const nonetext = ref(null);

const textMore = ref(null);

const myDiv = ref(null);

const isMore = ref(0);

const isAll = ref(0);

const lookmore = () => {

  isAll.value = 1;

};

onMounted(() => {

  // nextTick(() => {

  MoreRsize();

  // });

});

const MoreRsize = () => {

  nextTick(() => {

    if (nonetext.value.clientHeight > props.row * 24) {

      isMore.value = 1;

    } else {

      isMore.value = 0;

    }

    beforeHeight.value = (props.row - 1) * 24 + 'px';

  });

};

// window.onresize = () => {

//   MoreRsize();

// };

</script>



<style lang="less" scoped>

.yuanqu-con {

  width: 100%;

  font-size: 14px;

  color: #666666;

  line-height: 24px;



  .text {

    display: -webkit-box;

    -webkit-line-clamp: 3;

    -webkit-box-orient: vertical;

    overflow: hidden;

  }



  .text::before {

    content: '';

    float: right;

    height: var(--beforeHeight);

    /*先随便设置一个高度*/

    background: #fff;

  }



  /* .text::after {

            content: '';

            width: 100%;

            height: 65px;

            position: absolute;

            background: #fff;

            } */

  .btn {

    margin-left: 3px;

    padding: 0 3px;

    float: right;

    clear: both;

    cursor: pointer;

    color: #4876ff;

  }

}

.Packup {

  color: #4876ff;

  cursor: pointer;

}

.play {

  font-size: 14px;

  color: #666666;

  // 去除滚动条

  // overflow: hidden;

  // 隐藏滚动条

  scrollbar-width: none;

}

</style>

使用
 

 <TextMore
                desc="这是一个测试的文字阶段展开这是一个测试的文字阶段展开这是一个测试的文字阶段展开这是一这是一个测试的文字阶段展开这是一个测试的文字阶段展开这是一个测试的文字阶段展开这是一个测试的文字阶段展开个测试的文字阶段展开这是一个测试的文字阶段展开这是一个测试的文字阶段展开这是一个测试的文字阶段展开这是一个测试的文字阶段展开这是一个测试的文字阶段展开这是一个测试的文字阶段展开"
                :row="3"
              ></TextMore>

效果

标签:...,const,自定义,color,text,value,PC,ref,desc
From: https://blog.csdn.net/NSD_wei/article/details/141052667

相关文章

  • gRPC 是否能够添加最大调用重试次数?
    我还没有找到任何如何在某些rpc调用上添加重试逻辑的示例。gRPC是否能够添加最大调用重试次数?如果是的话,它是一个内置函数吗?gRPC本身没有内置机制来指定最大重试次数。gRPC使用的常见模式是deadline和cancellation,允许你在请求级别控......
  • Linux源码阅读笔记20-PCI设备驱动详解
    PCI基础PCI总线为高性能局部总线,主要解决外部设备之间以及外部设备与主机之间高速数据传输。在数字图形、图像等处理,以及告诉实时数据采集与处理等队数据传输速率要求高的应用中,采用PCI总线进行数据传输。PCI规范能够实现32位并行数据传输,工作频率为33MHz或66MHz,最大吞吐率......
  • C#中的foreach和自定义比较
    在C#中foreach不能修改集合里面的值在C#中,使用foreach循环遍历集合时,通常不建议修改集合中的元素,因为foreach循环是针对集合的枚举器进行操作的,而枚举器通常不支持修改集合中的元素。如果尝试在foreach循环中修改集合,可能会抛出异常或导致不可预测的行为。然而,如果你......
  • 原理图与 PCB设计核心指南!
    这篇文章献给从事电子信息行业的硬件工程师、射频工程和PCB工程师,若有不足之处,请多多包涵!原理图设计原理原理图设计是电子设计的核心环节,它为后续的 PCB 设计、生产、调试等流程奠定了坚实基础。深入理解原理图设计的原理及注意事项,对于确保整个 电子设计项目的顺利进......
  • 鹏哥C语言自定义笔记重点
    1.浮点数在内存中不能精确保存。2.sizeof这个操作符计算返回的结果是size_t类型的,是无符号整数型的,当遇见负数会被认为是非常大的数。3.strcpy在拷贝字符串时,会把源字符串中的\0也拷贝过去。assert是断言,可以防止NULL,需要头文件#include<assert.h>。const修饰指针变量放在*......
  • httpclient&WebClient--4次迭代,让我的 Client 优化 100倍!
    4次迭代,让我的Client优化100倍!https://www.cnblogs.com/crazymakercircle/p/17136216.html 在大家的生产项目中,经常需要通过Client组件(HttpClient/OkHttp/JDKConnection)调用第三方接口。在一个高并发的中台生产项目中。有一个比较特殊的请求,一次请求,包含10个Web外部......
  • 1392、STM32单片机温湿度检测阈值报警4个继电器加4个负载风扇等无线蓝牙远程(程序+原
    毕设帮助、开题指导、技术解答(有偿)见文未 目录方案选择单片机的选择显示器选择方案一、设计功能二、实物图三、原理图四、程序源码五、PCB图资料包括:需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。方案选择单片机的选......
  • 22.python自定义函数(format,zip)
    python自定义函数一、常见的自定义函数已经学过的函数:list、print、set、str、type、tuple、dict、range、input等今天学的函数:format二、实战讲解(一)format函数1、默认显示案例:hz="{}{}".format("dcs","43")print(hz)#dcs43hz="{}".format("dcs","43"......
  • 博客园自定义皮肤工具推荐:awescnb
    简介awescnb是一个用于博客园(Cnblogs)的自定义皮肤和功能增强插件。它允许用户通过简单的配置来自定义其博客的外观和增加一些额外的功能。下面是对awescnb的简要介绍:功能特点:自定义皮肤:用户可以选择不同的皮肤主题,包括背景颜色、字体样式等,以个性化他们的博客页面。扩展功能:除......
  • 自定义协议缓冲区(Protocol Buffers)在Xcode开发中的实战应用
    自定义协议缓冲区(ProtocolBuffers)在Xcode开发中的实战应用在当今的iOS开发中,数据的序列化和反序列化扮演着至关重要的角色。ProtocolBuffers(简称Protobuf),由Google开发,以其轻量、快速和简单的特点,成为了一种流行的跨平台数据交换格式。本文将带领你了解如何在Xcode中集......