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


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是否可实现多线程  深入理解JavaScript定时机制
Dec 22 Javascript
JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景简述
Apr 15 Javascript
javascript多种数据类型表格排序代码分析
Sep 11 Javascript
jQuery prev ~ siblings选择器使用介绍
Aug 09 Javascript
代码触发js事件(click、change)示例应用
Dec 13 Javascript
javascript数字时钟示例分享
Apr 23 Javascript
一个jquery实现的不错的多行文字图片滚动效果
Sep 28 Javascript
js带点自动图片轮播幻灯片特效代码分享
Sep 07 Javascript
基于jQuery Circlr插件实现产品图片360度旋转
Sep 20 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
May 18 Javascript
jQuery 实现图片的依次加载图片功能
Jul 06 jQuery
关于JavaScript中forEach和each用法浅析
Jul 27 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开发中常用的字符串操作函数
2011/02/08 PHP
深入php函数file_get_contents超时处理的方法详解
2013/06/03 PHP
利用浏览器的Javascript控制台调试PHP程序
2014/01/08 PHP
php继承中方法重载(覆盖)的应用场合
2015/02/09 PHP
Yii2验证器(Validator)用法分析
2016/07/23 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
2017/07/03 PHP
基于PHP实现生成随机水印图片
2020/12/09 PHP
对采用动态原型方式无法展示继承机制得思考
2009/12/04 Javascript
基于Jquery的实现回车键Enter切换焦点
2010/09/14 Javascript
理解Javascript_01_理解内存分配原理分析
2010/10/11 Javascript
jquery 全局AJAX事件使用代码
2010/11/05 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
2015/04/17 Javascript
javascript实现简单的省市区三级联动
2015/05/14 Javascript
JavaScript类型系统之基本数据类型与包装类型
2016/01/06 Javascript
用jQuery向div中添加Html文本内容的简单实现
2016/07/13 Javascript
jquery获取点击控件的绝对位置简单实例
2016/10/13 Javascript
静态页面实现 include 引入公用代码的示例
2017/09/25 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
详解如何在vscode里面调试js和node.js的方法步骤
2018/12/24 Javascript
vue+iview动态渲染表格详解
2019/03/19 Javascript
Python-嵌套列表list的全面解析
2016/06/08 Python
如何在 Django 模板中输出 &quot;{{&quot;
2020/01/24 Python
工程造价管理专业大专生求职信
2013/10/06 职场文书
售前工程师职业生涯规划
2014/03/02 职场文书
小学开学典礼主持词
2014/03/19 职场文书
医疗纠纷协议书
2014/04/16 职场文书
公务员中国梦演讲稿
2014/08/19 职场文书
2014幼儿园教师师德师风演讲稿
2014/09/10 职场文书
民政局副局长民主生活会个人对照检查材料
2014/09/19 职场文书
2014年学校党建工作汇报材料
2014/11/02 职场文书
2015年留守儿童工作总结
2015/05/22 职场文书
观后感开头
2015/06/19 职场文书
python 实现体质指数BMI计算
2021/05/26 Python
JavaScript 反射学习技巧
2021/10/16 Javascript
Redis如何使用乐观锁(CAS)保证数据一致性
2022/03/25 Redis