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


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 相关文章推荐
服务器安全设置的几个注册表设置
Jul 28 Javascript
JS OOP包机制,类创建的方法定义
Nov 02 Javascript
Jquery ajax不能解析json对象,报Invalid JSON错误的原因和解决方法
Mar 27 Javascript
javascript中style.left和offsetLeft的用法说明
Mar 07 Javascript
CSS javascript 结合实现悬浮固定菜单效果
Aug 23 Javascript
jQuery+canvas实现的球体平抛及颜色动态变换效果
Jan 28 Javascript
JS+HTML5实现获取手机验证码倒计时按钮
Aug 08 Javascript
bootstrap动态调用select下拉框的实例代码
Aug 09 Javascript
element-ui 中的table的列隐藏问题解决
Aug 24 Javascript
js实现动态添加上传文件页面
Oct 22 Javascript
js神秘的电报密码 哈弗曼编码实现
Sep 10 Javascript
vue.js的状态管理vuex中store的使用详解
Nov 08 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
Laravel 5框架学习之日期,Mutator 和 Scope
2015/04/08 PHP
php实现用于计算执行时间的类实例
2015/04/18 PHP
PHP编程获取各个时间段具体时间的方法
2017/05/26 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
2019/02/15 PHP
IE和Mozilla的兼容性汇总event
2007/08/12 Javascript
Javascript客户端将指定区域导出到Word、Excel的代码
2008/10/22 Javascript
js 中 document.createEvent的用法
2010/08/29 Javascript
jQuery获取标签文本内容和html内容的方法
2015/03/27 Javascript
详解参数传递四种形式
2015/07/21 Javascript
14款经典网页图片和文字特效的jQuery插件-前端开发必备
2015/08/25 Javascript
js流动式效果显示当前系统时间
2016/05/16 Javascript
require.js配合插件text.js实现最简单的单页应用程序
2016/07/12 Javascript
Bootstrap模态框调用功能实现方法
2016/09/19 Javascript
利用canvas实现的加载动画效果实例代码
2017/07/05 Javascript
vue-cli整合vuex的时候,修改actions和mutations,实现热部署的方法
2018/09/19 Javascript
浅谈redux, koa, express 中间件实现对比解析
2019/05/23 Javascript
Angular封装表单控件及思想总结
2019/12/11 Javascript
node.js 基于 STMP 协议和 EWS 协议发送邮件
2021/02/14 Javascript
简单介绍Python中的round()方法
2015/05/15 Python
python简单实现获取当前时间
2016/08/27 Python
Python实现EXCEL表格的排序功能示例
2019/06/25 Python
Python实现朴素贝叶斯的学习与分类过程解析
2019/08/24 Python
python定间隔取点(np.linspace)的实现
2019/11/27 Python
python线程join方法原理解析
2020/02/11 Python
Python命令行参数定义及需要注意的地方
2020/11/30 Python
localStorage、sessionStorage使用总结
2017/11/17 HTML / CSS
英国在线汽车和面包车零件商店:Car Parts 4 Less
2018/08/15 全球购物
高三历史教学反思
2014/01/09 职场文书
生日宴会主持词
2014/03/20 职场文书
教师师德考核自我评价
2014/09/13 职场文书
工作检讨书怎么写
2014/10/10 职场文书
2015年乡镇环保工作总结
2015/04/22 职场文书
无罪辩护词范文
2015/05/21 职场文书
CSS基础详解
2021/10/16 HTML / CSS
苹果M1芯片安装nginx 并且部署vue项目步骤详解
2021/11/20 Servers
CSS font-variation 可变字体的魅力(实例详解)
2022/03/03 HTML / CSS