当前位置:首页 > 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实现飘窗原理 飘窗效果通常指在页面上悬浮显示的弹窗或通知,跟随页面滚动或固定在某个位置。Vue实现这一效果主要依赖组件化开发、CSS定位和动态数据绑定。 组件结构设计 创建一个独立的Vue组件…

vue实现drag

vue实现drag

Vue 实现拖拽功能的方法 在 Vue 中实现拖拽功能可以通过原生 HTML5 的拖拽 API 或第三方库如 vuedraggable 来完成。以下是两种常见方法的实现方式。 使用 HTML5 拖拽…

vue实现tag

vue实现tag

Vue 实现标签(Tag)功能 在 Vue 中实现标签(Tag)功能可以通过多种方式完成,以下是一些常见的方法和实现步骤: 使用动态组件和 v-for 通过 v-for 指令动态渲染标签列表,结合样…

vue实现文字

vue实现文字

Vue 中实现文字显示的方法 在 Vue 中实现文字显示可以通过多种方式,包括插值表达式、指令、组件等。以下是几种常见的实现方法: 插值表达式 使用双大括号 {{ }} 进行文本插值,这是 Vue…

vue键盘实现

vue键盘实现

监听键盘事件 在Vue中监听键盘事件可以通过v-on指令或@缩写实现。常见的键盘事件包括keydown、keyup和keypress。例如监听回车键事件: <template> &l…

vue实现tab

vue实现tab

Vue 实现 Tab 切换功能 在 Vue 中实现 Tab 切换功能可以通过多种方式完成,以下是几种常见的实现方法: 使用 v-if 和 v-show 指令 通过绑定 v-if 或 v-show 来…