小程序实现展开/收起的效果示例


Posted in Javascript onSeptember 22, 2018

前言:本章说下文字内容的展开与收起的实现,要实现这么一个效果:当收起的时候隐藏并显示省略号,当展开的时候显示全部文字。

GitHub:https://github.com/Ewall1106/miniProgramDemo

先看下效果图:

小程序实现展开/收起的效果示例

小程序 — 展开/收起

1、结构样式

(1)首先我们定义一下html结构:

<view class="container">
 <view class="title">
  <text class="title_txt">标题标题</text>
  <image class="title_icon" src="/assets/images/arrow_up.png" />
 </view>
 <view class="content"> 
  我所有的自负皆来自我的自卑,所有的英雄气概都来自于我的软弱。嘴里振振有词是因为心里满是怀疑,深情是因为痛恨自己无情。这世界没有一件事情是虚空而生的,站在光里,背后就会有阴影,这深夜里一片寂静,是因为你还没有听见声音。
 </view>
</view>

内容摘抄至马良《告坦白书》中我一段喜欢的文字。

(2)less样式:

标题 title 就是一个简单的flex布局; 内容 content 中的文字我们默认收起状态且只展示两行

.container {
 .title {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  padding: 25rpx;
  .title_txt {
   font-size: 34rpx;
   color: #2b2b2b;
  }
  .title_icon {
   display: block;
   width: 21rpx;
   height: 11rpx;
  }
 }
 .content {
  height: 80rpx;
  overflow: hidden;
  text-overflow: ellipsis;
  text-overflow: -o-ellipsis-lastline;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  padding: 0 25rpx;
  font-size: 30rpx;
  color: #888888;
 }
}

(3)这样我们就实现了一个默认布局样式

小程序实现展开/收起的效果示例

收起状态

2、添加点击事件

(1)首先我们应该在 data 中定义一个变量 isShow 用来控制样式的切换,默认为收起状态(即不展示)。

data = {
 isShow: false
};

(2)在箭头icon上添加一个点击事件,当点击的时候对 isShow 做取反操作;

toggle() {
 this.isShow = !this.isShow;
 this.$apply();
}

3、样式动态切换

(1)首先是image箭头图片的切换(注意是如何动态的切换本地图片的)

<image class="title_icon" src="{{isShow ? '/assets/images/arrow_down.png' : '/assets/images/arrow_up.png'}}" @tap="toggle" />

(2)然后我们定义一个展开的样式,根据isShow的状态值动态的切换样式

<view class="content {{isShow ? 'on' : ''}}">
 我所有的自负皆来自我的自卑,所有的英雄气概都来自于我的软弱。嘴里振振有词是因为心里满是怀疑,深情是因为痛恨自己无情。这世界没有一件事情是虚空而生的,站在光里,背后就会有阴影,这深夜里一片寂静,是因为你还没有听见声音。
</view>

.content.on {
 display: block;
 text-overflow: clip;
 overflow: visible;
}

4、小结

这样我们就实现了文本框的展开/收起效果,当收起的时候显示省略号并隐藏,当展开的时候展示全部文字。

当然,不仅仅是文字的收起与展开,里面放其它的内容也是可以的,根据需求来应对了;还有就是可以加个动画之类的完善一下交互效果,感兴趣的朋友可以自己鼓捣。

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

Javascript 相关文章推荐
JavaScript实现拼音排序的方法
Nov 20 Javascript
使用jQuery管理选择结果
Jan 20 Javascript
js实现简单鼠标跟随效果的方法
Apr 10 Javascript
探讨JavaScript中的Rest参数和参数默认值
Jul 29 Javascript
Bootstrap表单组件教程详解
Apr 26 Javascript
Javascript的无new构建实例详解
May 15 Javascript
详解JavaScript中Hash Map映射结构的实现
May 21 Javascript
jQuery实现根据滚动条位置加载相应内容功能
Jul 18 Javascript
vue2导航根据路由传值,而改变导航内容的实例
Nov 10 Javascript
vue+axios 前端实现登录拦截的两种方式(路由拦截、http拦截)
Oct 24 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
Nov 23 Javascript
javascript设计模式 ? 适配器模式原理与应用实例分析
Apr 13 Javascript
玩转vue的slot内容分发
Sep 22 #Javascript
vue 巧用过渡效果(小结)
Sep 22 #Javascript
vue forEach循环数组拿到自己想要的数据方法
Sep 21 #Javascript
vue2.x集成百度UEditor富文本编辑器的方法
Sep 21 #Javascript
vue中,在本地缓存中读写数据的方法
Sep 21 #Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
Sep 21 #Javascript
vue集成百度UEditor富文本编辑器使用教程
Sep 21 #Javascript
You might like
类的另类用法--数据的封装
2006/10/09 PHP
require(),include(),require_once()和include_once()区别
2008/03/27 PHP
PHP关联数组的10个操作技巧
2013/01/21 PHP
php 生成短网址原理及代码
2014/01/23 PHP
为你总结一些php系统类函数
2015/10/21 PHP
php+ajax简单实现全选删除的方法
2016/12/06 PHP
windows 2008r2+php5.6.28环境搭建详细过程
2019/06/18 PHP
PHP使用递归按层级查找数据的方法
2019/11/10 PHP
简单的Jquery遮罩层代码实例
2013/11/14 Javascript
JS动态调用方法名示例介绍
2013/12/18 Javascript
基于jquery实现导航菜单高亮显示(两种方法)
2015/08/23 Javascript
js实现字符串和数组之间相互转换操作
2016/01/12 Javascript
理解JavaScript中Promise的使用
2016/01/18 Javascript
JavaScript中boolean类型之三种情景实例代码
2016/11/21 Javascript
简单谈谈vue的过渡动画(推荐)
2017/10/11 Javascript
JS实现网页抢购功能(触发,终止脚本)
2017/11/27 Javascript
浅谈 vue 中的 watcher
2017/12/04 Javascript
详解vue-cli之webpack3构建全面提速优化
2017/12/25 Javascript
JS将时间秒转换成天小时分钟秒的字符串
2019/07/10 Javascript
vue实现行列转换的一种方法
2019/08/06 Javascript
[05:07]DOTA2英雄梦之声_第14期_暗影恶魔
2014/06/20 DOTA
Python 3实战爬虫之爬取京东图书的图片详解
2017/10/09 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
2018/12/07 Python
Python File(文件) 方法整理
2019/02/18 Python
python利用selenium进行浏览器爬虫
2019/04/25 Python
python通过链接抓取网站详解
2019/11/20 Python
Spartoo葡萄牙鞋类网站:线上销售鞋履与时尚配饰
2017/01/11 全球购物
戴尔英国官网:Dell英国
2017/05/27 全球购物
意大利顶级奢侈品电商:LUISAVIAROMA(支持中文)
2020/05/26 全球购物
我的梦中国梦演讲稿
2014/04/23 职场文书
我的中国梦口号
2014/06/16 职场文书
党建工作汇报材料
2014/12/24 职场文书
部门主管竞聘书
2015/09/15 职场文书
2016师德师风学习心得体会
2016/01/12 职场文书
Python基础详解之邮件处理
2021/04/28 Python
HTML5之高度塌陷问题的解决
2022/06/01 HTML / CSS