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

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

image.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

展开收起效果


image.png

相关文章
|
7天前
|
JSON 缓存 前端开发
JavaScript 新特性:新增声明命令与解构赋值的强大功能
JavaScript 新特性:新增声明命令与解构赋值的强大功能
|
9天前
|
SQL Web App开发 JavaScript
业务功能常用的JS代码片段
业务功能常用的JS代码片段
12 3
|
4天前
|
前端开发 JavaScript 容器
技术经验解读:个人练习:使用HTML+CSS3制作图片轮播功能(不使用JavaScript)
技术经验解读:个人练习:使用HTML+CSS3制作图片轮播功能(不使用JavaScript)
13 0
|
6天前
|
JavaScript 前端开发
技术经验分享:javascript倒计数功能
技术经验分享:javascript倒计数功能
11 0
|
7天前
|
前端开发 JavaScript 安全
解锁 JavaScript ES6:函数与对象的高级扩展功能
解锁 JavaScript ES6:函数与对象的高级扩展功能
|
7天前
|
前端开发 JavaScript
vue+el-select下拉多选实现,全选,反选,清空功能源码
vue+el-select下拉多选实现,全选,反选,清空功能源码
7 0
|
8天前
|
JavaScript
vue点击按钮复制文字到粘贴板
vue点击按钮复制文字到粘贴板
10 0
|
11天前
|
JavaScript 安全 前端开发
JS实现复制功能
JS实现复制功能
6 0
|
11天前
|
JavaScript 前端开发
JS分页功能
JS分页功能
5 0
|
11天前
|
JavaScript 前端开发
JS走马灯小功能制作
JS走马灯小功能制作
7 0

热门文章

最新文章