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 相关文章推荐
js获取图片长和宽度的代码
Nov 24 Javascript
jquery中的事件处理详细介绍
Jun 24 Javascript
javascript包装对象实例分析
Mar 27 Javascript
详解JavaScript对Date对象的操作问题(生成一个倒数7天的数组)
Oct 01 Javascript
jQuery插件实现多级联动菜单效果
Dec 01 Javascript
jquery判断输入密码两次是否相等
Apr 22 Javascript
使用canvas及js简单生成验证码方法
Apr 02 Javascript
vue mint-ui tabbar变组件使用
May 04 Javascript
微信小程序textarea层级过高(盖住其他元素)问题的解决办法
Mar 04 Javascript
微信小程序封装的HTTP请求示例【附升级版】
May 11 Javascript
vue中通过使用$attrs实现组件之间的数据传递功能
Sep 01 Javascript
JS Ajax请求会话过期处理问题解决方法分析
Nov 16 Javascript
这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
星际中的相关伤害
2020/03/04 星际争霸
压力如何影响浓缩咖啡品质
2021/03/03 咖啡文化
apache2.2.4+mysql5.0.77+php5.2.8安装精简
2009/04/29 PHP
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
2013/06/28 PHP
php生成zip文件类实例
2015/04/07 PHP
thinkphp5引入公共部分header、footer的方法详解
2018/09/14 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
javascript编程起步(第三课)
2007/02/27 Javascript
获取当前点击按钮的id用this.id实现
2014/03/17 Javascript
node.js中的http.response.writeHead方法使用说明
2014/12/14 Javascript
在Javascript中处理字符串之big()方法的使用
2015/06/08 Javascript
Jquery Easyui分割按钮组件SplitButton使用详解(17)
2016/12/18 Javascript
jquery实现input框获取焦点的方法
2017/02/06 Javascript
jquery精度计算代码 jquery指定精确小数位
2017/02/06 Javascript
JSON与JS对象的区别与对比
2017/03/01 Javascript
node结合swig渲染摸板的方法
2018/04/11 Javascript
vue滚动固定顶部及修改样式的实例代码
2019/05/30 Javascript
nuxt 实现在其它js文件中使用store的方式
2020/11/05 Javascript
vue 组件基础知识总结
2021/01/26 Vue.js
Nest.js环境变量配置与序列化详解
2021/02/21 Javascript
python类型强制转换long to int的代码
2013/02/10 Python
Python分支结构(switch)操作简介
2018/01/17 Python
对Python中实现两个数的值交换的集中方法详解
2019/01/11 Python
对tensorflow中的strides参数使用详解
2020/01/04 Python
python 异步async库的使用说明
2020/05/04 Python
python利用appium实现手机APP自动化的示例
2021/01/26 Python
纯CSS和jQuery实现的在页面顶部显示的进度条效果2例(仿手机浏览器进度条效果)
2014/04/16 HTML / CSS
AmazeUI的下载配置与Helloworld的实现
2020/08/19 HTML / CSS
一个基于canvas的移动端图片编辑器的实现
2020/10/28 HTML / CSS
泰国汽车、火车和轮渡票预订网站:Bus Online Ticket
2017/09/09 全球购物
质监局领导班子对照检查材料思想汇报
2014/09/27 职场文书
河童之夏观后感
2015/06/11 职场文书
来探秘“德国中小企业”的成功之道
2019/07/26 职场文书
CSS3 制作的彩虹按钮样式
2021/04/11 HTML / CSS
nginx location 带斜杠【 / 】与不带的区别
2022/04/13 Servers
Pytorch中expand()的使用(扩展某个维度)
2022/07/15 Python