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 相关文章推荐
多个iframe自动调整大小的问题
Sep 18 Javascript
JQery jstree 大数据量问题解决方法
Mar 09 Javascript
JQuery为textarea添加maxlength属性并且兼容IE
Apr 25 Javascript
javascript获取wx.config内部字段解决微信分享
Mar 09 Javascript
Sequelize中用group by进行分组聚合查询
Dec 12 Javascript
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
Dec 14 Javascript
vue.js+Element实现表格里的增删改查
Jan 18 Javascript
基于 Vue.js 2.0 酷炫自适应背景视频登录页面实现方式
Jan 17 Javascript
vue 下列表侧滑操作实例代码详解
Jul 24 Javascript
详解javascript函数写法大全
Mar 25 Javascript
Vue实现简单的留言板
Oct 23 Javascript
使用vue-element-admin框架从后端动态获取菜单功能的实现
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
如何限制访问者的ip(PHPBB的代码)
2006/10/09 PHP
深入解析PHP 5.3.x 的strtotime() 时区设定 警告信息修复
2013/08/05 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
2014/06/22 PHP
centos7上编译安装php7以php-fpm方式连接apache
2018/11/08 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
js对table的td进行相同内容合并示例详解
2013/12/27 Javascript
JS从一组数据中找到指定的单条数据的方法
2016/06/02 Javascript
jQuery 的 ready()的纯js替代方法
2016/11/20 Javascript
js+html5实现半透明遮罩层弹框效果
2020/08/24 Javascript
基于vue-cli vue-router搭建底部导航栏移动前端项目
2018/02/28 Javascript
vue2.0 子组件改变props值,并向父组件传值的方法
2018/03/01 Javascript
javascript闭包的使用之按钮切换功能
2018/08/30 Javascript
利用原生的JavaScript实现简单拼图游戏
2018/11/18 Javascript
vue框架制作购物车小球动画效果实例代码
2019/09/26 Javascript
原生js实现ajax请求和JSONP跨域请求操作示例
2020/03/14 Javascript
jQuery 实现扁平式小清新导航
2020/07/07 jQuery
[01:03]DOTA2新的征程 你的脚印值得踏上
2014/08/13 DOTA
[01:10:24]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第一场 2月28日
2021/03/11 DOTA
Python简单日志处理类分享
2015/02/14 Python
用Python实现通过哈希算法检测图片重复的教程
2015/04/02 Python
Python中List.count()方法的使用教程
2015/05/20 Python
python 图像平移和旋转的实例
2019/01/10 Python
Django框架模板介绍
2019/01/15 Python
Python3基本输入与输出操作实例分析
2020/02/14 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
2020/07/18 Python
加拿大廉价机票预订网站:CheapOair.ca
2018/03/04 全球购物
马来西亚太阳镜、眼镜和隐形眼镜网上商店:Focus Point
2018/12/13 全球购物
3个CCIE对一个工程师的面试题
2012/05/06 面试题
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的
2015/07/24 面试题
学生党员思想汇报
2013/12/28 职场文书
健康家庭事迹材料
2014/05/02 职场文书
2014班子成员自我剖析材料思想汇报
2014/10/01 职场文书
初中家长评语大全
2014/12/26 职场文书
刑事附带民事诉讼答辩状
2015/05/22 职场文书
职场领导同事生日简短祝福语
2019/08/06 职场文书
虚拟机linux端mysql数据库无法远程访问的解决办法
2021/05/26 MySQL