Vue.js实现文字超出指定高度后展开收起功能-阿里云开发者社区

开发者社区> 开发者小助手-bz> 正文

Vue.js实现文字超出指定高度后展开收起功能

简介: Vue.js实现文字超出指定高度后展开收起功能
+关注继续查看

参考网站效果

2.png

22.png

Vue.js代码实现

组件:TextOverflow.vue

<template>
  <div :class="{'overflow-hidden': !isShowMore}">
    <slot></slot>
    <span
      v-if="isShowMore"
      class="link"
      @click="handleHideMoreClick"
    >
      收起</span>
    <span
      v-else
      class="show-more-btn"
      @click="handleShowMoreClick"
    >
      <span>
        ...</span>
      <span class="link">
        展开</span>
    </span>
  </div>

</template>

<script>
// created at 2021-09-23
export default {
  name: 'TextOverflow',

  data() {
    return {
      isShowMore: false,
    };
  },

  methods: {
    handleShowMoreClick() {
      this.isShowMore = true;
    },

    handleHideMoreClick() {
      this.isShowMore = false;
    },
  }
};
</script>

<style>
.overflow-hidden {
  position: relative;
  overflow: hidden;
}

.show-more-btn {
  position: absolute;
  display: block;
  right: 0;
  bottom: 0;
  width: 70px;
  text-align: right;
  /* 背景从透明到白色,过渡 */
  background-image: linear-gradient(to right, transparent, #ffffff 26.4%);
}

.link {
  color: #409eff;
  cursor: pointer;
}
</style>

使用组件

<template>
  <div class="">
    <TextOverflow class="content">这是一段文字,文字的效果是这样的,超出部分默认会被隐藏,如果点击展开会显示全部内容</TextOverflow>
  </div>
</template>

<script>
import TextOverflow from './TextOverflow.vue';
// created at 2021-09-23
export default {
  name: 'App',

  props: {},

  components: {
    TextOverflow,
  },

  data() {
    return {};
  },

  computed: {},

  methods: {
    async getData() {},
  },

  created() {
    this.getData();
  },
};
</script>

<style >
.content {
  width: 200px;
  line-height: 20px;
  /* 设置为行高的整倍数,此处显示两行: 2 * 20px */
  max-height: 40px;
}
</style>

使用组件TextOverflow的时候,需要设置三个属性:

  • width: 200px;
  • line-height: 20px;
  • max-height: 40px; 设置为行高的整倍数,此处显示两行: 2 * 20px

展开收起效果

222.png

2222.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9580 0
(四):vue 链接转二维码 并实现 下载功能
(四):vue 链接转二维码 并实现 下载功能
9 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
11288 0
示例vue 的keep-alive缓存功能的实现
本篇文章主要介绍了vue 的keep-alive缓存功能的实现,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。
631 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13291 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
7000 0
1569
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载