当前位置:首页 > VUE

vue实现文字折叠

2026-02-19 14:16:10VUE

Vue 实现文字折叠功能

文字折叠功能通常用于长文本的展示与隐藏,以下提供几种实现方式:

使用 v-show 或 v-if 控制显示

通过按钮切换布尔值来控制文本的显示与隐藏:

vue实现文字折叠

<template>
  <div>
    <p v-show="isExpanded">{{ longText }}</p>
    <button @click="isExpanded = !isExpanded">
      {{ isExpanded ? '收起' : '展开' }}
    </button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      isExpanded: false,
      longText: '这里是需要折叠的长文本内容...'
    }
  }
}
</script>

结合 CSS 过渡效果

添加过渡效果使折叠/展开更平滑:

vue实现文字折叠

<template>
  <div>
    <div class="text-container" :class="{ 'collapsed': !isExpanded }">
      <p>{{ longText }}</p>
    </div>
    <button @click="toggleExpand">
      {{ isExpanded ? '收起' : '展开' }}
    </button>
  </div>
</template>

<style>
.text-container {
  max-height: 500px;
  overflow: hidden;
  transition: max-height 0.3s ease;
}

.text-container.collapsed {
  max-height: 60px;
}
</style>

使用第三方组件

安装 vue-text-collapse 等现成组件:

npm install vue-text-collapse
<template>
  <text-collapse :text="longText" :length="100"/>
</template>

<script>
import TextCollapse from 'vue-text-collapse'

export default {
  components: { TextCollapse },
  data() {
    return {
      longText: '...'
    }
  }
}
</script>

动态计算文本高度

对于需要精确控制显示行数的情况:

<template>
  <div>
    <p ref="text" :class="{ 'line-clamp': !isExpanded }">{{ longText }}</p>
    <button @click="isExpanded = !isExpanded">
      {{ isExpanded ? '收起' : '展开' }}
    </button>
  </div>
</template>

<style>
.line-clamp {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
</style>

以上方法可根据具体需求选择使用,纯 CSS 方案性能更好,而 JavaScript 方案提供更精确的控制能力。

标签: 文字vue
分享给朋友:

相关文章

vue实现登出

vue实现登出

实现Vue登出功能 登出功能通常涉及清除用户会话、令牌或本地存储的数据,并重定向到登录页面。以下是几种常见的实现方式: 清除用户令牌和状态 在Vuex的store中定义一个logout mutati…

vue实现cs

vue实现cs

Vue 实现 CS(Client-Side)渲染的常见方法 Vue.js 是一个用于构建用户界面的渐进式框架,默认采用客户端渲染(CSR)。以下是几种常见的实现方式: 使用 Vue CLI 创建项目…

vue轮询实现

vue轮询实现

Vue 轮询实现方法 在 Vue 中实现轮询可以通过以下几种方式: 使用 setInterval data() { return { pollInterval: null } },…

vue实现ios

vue实现ios

Vue 实现 iOS 风格应用 使用 Vue 实现 iOS 风格的应用,可以通过结合 UI 框架和自定义样式来达成目标。以下是具体方法和步骤: 选择 iOS 风格的 UI 框架 Vue 生态中有多…

vue实现动画

vue实现动画

Vue 实现动画的方法 Vue 提供了多种方式来实现动画效果,包括内置的过渡系统、第三方动画库以及直接操作 CSS 或 JavaScript 动画。 使用 Vue 内置过渡系统 Vue 的 <…

vue实现mvvm

vue实现mvvm

Vue 实现 MVVM 模式 MVVM(Model-View-ViewModel)是一种前端架构模式,Vue 是其典型实现之一。MVVM 的核心是通过数据绑定和响应式系统实现视图与数据的自动同步。…