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


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 相关文章推荐
获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
Feb 14 Javascript
关于JavaScript中的关联数组分析
Apr 09 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
Dec 19 Javascript
js利用prototype调用Array的slice方法示例
Jun 09 Javascript
基于Javascript实现文件实时加载进度的方法
Oct 12 Javascript
canvas时钟效果
Feb 16 Javascript
Angular.js去除页面中显示的空行方法示例
Mar 30 Javascript
微信小程序使用swiper组件实现类3D轮播图
Aug 29 Javascript
ES6如何用一句代码实现函数的柯里化
Jan 18 Javascript
原生javascript中this几种常见用法总结
Feb 24 Javascript
深入浅析vue全局环境变量和模式
Apr 28 Javascript
angular *Ngif else用法详解
Dec 15 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
新手配置 PHP 调试环境(IIS+PHP+MYSQL)
2007/01/10 PHP
PHP empty函数报错解决办法
2014/03/06 PHP
一个不易被发现的PHP后门代码解析
2014/07/05 PHP
php采用curl模仿登录人人网发布动态的方法
2014/11/07 PHP
php获取excel文件数据
2017/04/21 PHP
Laravel中如何增加自定义全局函数详解
2017/05/09 PHP
说明你的Javascript技术很烂的五个原因
2011/04/26 Javascript
js 实现浏览历史记录示例
2014/04/20 Javascript
ECMAScript 6即将带给我们新的数组操作方法前瞻
2015/01/06 Javascript
jQuery代码实现发展历程时间轴特效
2015/07/30 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
2016/05/03 Javascript
从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别
2016/06/12 Javascript
用js控件div的滚动条,让它在内容更新时自动滚到底部的实现方法
2016/10/27 Javascript
关于不同页面之间实现参数传递的几种方式讨论
2017/02/13 Javascript
浅谈React的最大亮点之虚拟DOM
2018/05/29 Javascript
使用angularjs.foreach时return的问题解决
2018/09/30 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
2020/04/30 jQuery
JQuery通过键盘控制键盘按下与松开触发事件
2020/08/07 jQuery
Vue实现图书管理案例
2021/01/20 Vue.js
Python对列表去重的多种方法(四种方法)
2017/12/05 Python
python实现kNN算法
2017/12/20 Python
基于Python的文件类型和字符串详解
2017/12/21 Python
PyQt5每天必学之QSplitter实现窗口分隔
2018/04/19 Python
详解Python用三种方式统计词频的方法
2019/07/29 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
2019/11/11 Python
详解Selenium-webdriver绕开反爬虫机制的4种方法
2020/10/28 Python
HTML5使用ApplicationCache接口实现离线缓存技术解决离线难题
2012/12/13 HTML / CSS
Perricone MD裴礼康美国官网:抗衰老护肤品
2016/09/26 全球购物
英国鞋类及配饰零售商:Kurt Geiger
2017/02/04 全球购物
UGG美国官网:购买UGG雪地靴、拖鞋和鞋子
2017/12/31 全球购物
英国版MAC彩妆品牌:Illamasqua
2018/04/18 全球购物
关联、聚合(Aggregation)以及组合(Composition)的区别
2012/02/29 面试题
会计自我鉴定
2014/02/04 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
客户答谢会活动方案
2014/08/31 职场文书
MySQL入门命令之函数-单行函数-流程控制函数
2021/04/05 MySQL