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


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 setTimeout和setInterval的使用方法 说明
Mar 25 Javascript
JavaScript为对象原型prototype添加属性的两种方式
Aug 01 Javascript
Jquery插件之Fancybox丰富的弹出层效果附源码下载
Dec 02 Javascript
浅谈jquery中next与siblings的区别
Oct 27 Javascript
关于ES6的六个小特性(二)
Feb 20 Javascript
JavaScript设计模式之观察者模式实例详解
Jan 16 Javascript
如何提升vue.js中大型数据的性能
Jun 21 Javascript
微信小程序动画组件使用解析,类似vue,且更强大
Aug 01 Javascript
vue 使用element-ui中的Notification自定义按钮并实现关闭功能及如何处理多个通知
Aug 17 Javascript
使用easyui从servlet传递json数据到前端页面的两种方法
Sep 05 Javascript
jquery插件实现轮播图效果
Oct 19 jQuery
vue 获取到数据但却渲染不到页面上的解决方法
Nov 19 Vue.js
玩转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
预告映像公开!第1章续篇剧场版动画《Princess Principal Crown Handler》4月10日上映!
2020/03/06 日漫
福利彩票幸运号码自动生成器
2006/10/09 PHP
php中隐形字符65279(utf-8的BOM头)问题
2014/08/16 PHP
通过php添加xml文档内容的方法
2015/01/23 PHP
PHP中大于2038年时间戳的问题处理方案
2015/03/03 PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
2016/04/04 PHP
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
2016/04/30 PHP
微信公众平台开发(五) 天气预报功能开发
2016/12/03 PHP
php简单生成一组与多组随机字符串的方法
2017/05/09 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
2017/06/15 PHP
利用js实现在浏览器状态栏显示访问者在本页停留的时间
2013/12/29 Javascript
JavaScript匿名函数之模仿块级作用域
2015/12/12 Javascript
nodejs和C语言插入mysql数据库乱码问题的解决方法
2017/04/14 NodeJs
Vue js with语句原理及用法解析
2020/09/03 Javascript
Python实现全角半角转换的方法
2014/08/18 Python
python通过floor函数舍弃小数位的方法
2015/03/17 Python
python3操作mysql数据库的方法
2017/06/23 Python
python模拟事件触发机制详解
2018/01/19 Python
一文带你了解Python中的字符串是什么
2018/11/20 Python
重写django的model下的objects模型管理器方式
2020/05/15 Python
python 利用matplotlib在3D空间中绘制平面的案例
2021/02/06 Python
GUESS西班牙官方网上商城:美国服饰品牌
2017/03/15 全球购物
澳大利亚最好的厨具店:Kitchen Warehouse
2018/03/13 全球购物
英国排名第一的礼品体验公司:Red Letter Days
2018/08/16 全球购物
安德玛比利时官网:Under Armour比利时
2019/08/28 全球购物
Bluebella德国官网:英国性感内衣和睡衣品牌
2019/11/08 全球购物
幼儿园教研活动方案
2014/01/19 职场文书
高级编程求职信模板
2014/02/16 职场文书
成语的广告词
2014/03/19 职场文书
环保倡议书500字
2014/05/15 职场文书
中秋节国旗下演讲稿
2014/09/13 职场文书
2015年英语教研组工作总结
2015/05/23 职场文书
《纸船和风筝》教学反思
2016/02/18 职场文书
接收函
2019/04/22 职场文书
python自动计算图像数据集的RGB均值
2021/06/18 Python
学习nginx基础知识
2021/09/04 Servers