vue控制多行文字展开收起的实现示例


Posted in Javascript onOctober 11, 2019

这里讲一下,如何使用vue控制多行文字展开收起(也叫控制文字展开隐藏)。

效果:

这里设置了控制三行,如果超过三行会展示,“显示更多” 超出文字显示省略号。点击“显示更多”会展开所有文案,按钮变成“收起”

vue控制多行文字展开收起的实现示例

(未超出三行的时候)

vue控制多行文字展开收起的实现示例

(展开)

vue控制多行文字展开收起的实现示例

(收起)

代码实现:

<template>
 <div>
  <p class="m-content overflow-line" id="J_description">{{introduce}}</p>
  <button type="button" class="btn-more" v-if="isShowMore" id="J_btnmore" @click="showmoreDesc($event)">查看更多</button>
 </div>
</template>
<script>
 export default {
  name: 'Spread',
  data() {
   return {
    isShowMore: false,
    isDescStatus: true,
    introduce: ""
   };
  },
  props: {
   mes2: {
    type: String,
    default: ""
   }
  },
  methods: {
   showmoreDesc(e) {
    let el = e.currentTarget;
    el.previousElementSibling.classList[!this.isDescStatus ? 'add' : 'remove']('overflow-line');
    el.classList[this.isDescStatus ? 'add' : 'remove']('more-collapse');
    el.innerHTML = !this.isDescStatus ? '查看更多' : '收起';
    this.isDescStatus = !this.isDescStatus;
    that.isShowMore = true;
   }
  },
  watch: {
   mes2(val) {
    this.introduce = val;
    if (this.introduce.length > 75) {
     this.isShowMore = true;
    }
   }
  }
 };
</script>

<style lang="less" scoped>
 .m-content {
  &.overflow-line {
   display: -webkit-box;
   -webkit-box-orient: vertical;
   -webkit-line-clamp: 3;
   overflow: hidden;
  }
 }

 .btn-more {
  color: #fff;
  float: right;
  color: #5383E7;
  position: relative;
  margin-top: rc(5);
  padding-right: rc(33);

  &.more-collapse {

   &::after,
   &::before {
    top: 2px;
    transform: rotate(180deg);
   }

   &::before {
    top: 4px;
   }
  }

  &::after,
  &::before {
   width: 0;
   height: 0;
   content: '';
   position: absolute;
   right: 0;
   top: 7px;
   border: rc(12) solid transparent;
  }

  &::after {
   border-top-color: #5383E7;
   z-index: 1;
  }

  &::before {
   border-top-color: #1c2239;
   z-index: 2;
   top: 5px;
  }

 }
</style>

使用组件

<Spread :mes2="需要传递的文字数据"></Spread>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用Jquery实现滚动新闻
Feb 12 Javascript
JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
Jan 26 Javascript
Node.js中常规的文件操作总结
Oct 13 Javascript
ES6新特性四:变量的解构赋值实例
Apr 21 Javascript
vue实现前进刷新后退不刷新效果
Jan 26 Javascript
9102年webpack4搭建vue项目的方法步骤
Feb 20 Javascript
微信小程序云开发(数据库)详解
May 17 Javascript
vue 实现通过vuex 存储值 在不同界面使用
Nov 11 Javascript
Node.js API详解之 readline模块用法详解
May 22 Javascript
Vue结合路由配置递归实现菜单栏功能
Jun 16 Javascript
vue仿携程轮播图效果(滑动轮播,下方高度自适应)
Feb 11 Vue.js
详解Vue3使用axios的配置教程
Apr 29 Vue.js
这15个Vue指令,让你的项目开发爽到爆
Oct 11 #Javascript
js脚本中执行java后台代码方法解析
Oct 11 #Javascript
基于js实现复制内容到操作系统粘贴板过程解析
Oct 11 #Javascript
ES6之Proxy的get方法详解
Oct 11 #Javascript
vue组件 keep-alive 和 transition 使用详解
Oct 11 #Javascript
jquery将json转为数据字典的实例代码
Oct 11 #jQuery
JavaScript实现抖音罗盘时钟
Oct 11 #Javascript
You might like
PHP 采集获取指定网址的内容
2010/01/05 PHP
yii操作session实例简介
2014/07/31 PHP
thinkphp的URL路由规则与配置实例
2014/11/26 PHP
PHP类相关知识点实例总结
2016/09/28 PHP
PHP中ajax无刷新上传图片与图片下载功能
2017/02/21 PHP
PHP中TP5 上传文件的实例详解
2017/07/31 PHP
ThinkPHP5框架实现简单的批量查询功能示例
2018/06/07 PHP
关于Javascript模块化和命名空间管理的问题说明
2010/12/06 Javascript
jQuery查询数据返回object和字符串影响原因是什么
2013/08/09 Javascript
js+jquery实现图片裁剪功能
2015/01/02 Javascript
在AngularJS应用中实现一些动画效果的代码
2015/06/18 Javascript
JavaScript进阶练习及简单实例分析
2016/06/03 Javascript
javascript获取网页各种高宽及位置的方法总结
2016/07/27 Javascript
js时间比较 js计算时间差的简单实现方法
2016/08/26 Javascript
bootstrap监听滚动实现头部跟随滚动
2016/11/08 Javascript
Web 开发中Ajax的Session 超时处理方法
2017/01/19 Javascript
详解vue axios中文文档
2017/09/12 Javascript
Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
2017/09/18 Javascript
原生JS写Ajax的请求函数功能
2017/12/22 Javascript
AngularJS双向数据绑定原理之$watch、$apply和$digest的应用
2018/01/30 Javascript
vue实现多条件和模糊搜索功能
2019/05/28 Javascript
Python将8位的图片转为24位的图片实现方法
2018/10/24 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
Python计算IV值的示例讲解
2020/02/28 Python
在keras下实现多个模型的融合方式
2020/05/23 Python
使用Python操作MySQL的小技巧
2020/09/10 Python
10 套华丽的CSS3 按钮小结
2012/10/03 HTML / CSS
Charles & Keith欧盟:新加坡时尚品牌
2019/08/01 全球购物
Booking.com亚太地区:Booking.com APAC
2020/02/07 全球购物
亚洲领先的设计购物网站:Pinkoi
2020/11/26 全球购物
如何在Oracle中查看各个表、表空间占用空间的大小
2015/10/31 面试题
车辆工程专业求职信
2014/06/14 职场文书
工资证明范本
2015/06/12 职场文书
民主生活会主持词
2015/07/01 职场文书
公文格式,规则明细(新手收藏)
2019/07/23 职场文书
MyBatis在注解上使用动态SQL方式(@select使用if)
2022/07/07 Java/Android