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


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 相关文章推荐
jQuery表单验证插件formValidator(改进版)
Feb 03 Javascript
js控制表单奇偶行样式的简单方法
Jul 31 Javascript
文档对象模型DOM通俗讲解
Nov 01 Javascript
用Jquery实现滚动新闻
Feb 12 Javascript
javascript实现回到顶部特效
May 06 Javascript
详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)
Feb 11 Javascript
AngularJS入门教程二:在路由中传递参数的方法分析
May 27 Javascript
jQuery实现表格的增、删、改操作示例
Jan 27 jQuery
vue实现瀑布流组件滑动加载更多
Mar 10 Javascript
JavaScript文档加载模式以及元素获取
Jul 28 Javascript
vue 解决setTimeOut和setInterval函数无效报错的问题
Jul 30 Javascript
JS实现京东商品分类侧边栏
Dec 11 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两种无限分类方法实例
2015/04/21 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
接收键盘指令的脚本
2006/06/26 Javascript
JavaScript 学习初步 入门教程
2010/03/25 Javascript
javascript日期转换 时间戳转日期格式
2011/11/05 Javascript
基于JQuery的多标签实现代码
2012/09/19 Javascript
三种动态加载js的jquery实例代码另附去除js方法
2014/04/30 Javascript
在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
2016/06/18 Javascript
jQuery多个版本和其他js库冲突的解决方法
2016/08/11 Javascript
整理一下常见的IE错误
2016/11/18 Javascript
Bootstrap3 多选和单选框(checkbox)
2016/12/29 Javascript
JS中Array数组学习总结
2017/01/18 Javascript
用jquery的attr方法实现图片切换效果
2017/02/05 Javascript
简单谈谈axios中的get,post方法
2017/06/25 Javascript
Vue.js实例方法之生命周期详解
2017/07/03 Javascript
webpack4.x开发环境配置详解
2018/08/04 Javascript
vue实现类似淘宝商品评价页面星级评价及上传多张图片功能
2018/10/29 Javascript
JavaScript相等运算符的九条规则示例详解
2019/10/20 Javascript
vue-cli或vue项目利用HBuilder打包成移动端app操作
2020/07/29 Javascript
前端如何实现动画过渡效果
2021/02/05 Javascript
[02:30]辉夜杯主赛事第二日胜者组半决赛 CDEC.Y赛后采访
2015/12/26 DOTA
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
python下setuptools的安装详解及No module named setuptools的解决方法
2017/07/06 Python
python 简单备份文件脚本v1.0的实例
2017/11/06 Python
利用python为PostgreSQL的表自动添加分区
2021/01/18 Python
html5调用app分享功能示例(WebViewJavascriptBridge)
2018/03/21 HTML / CSS
html5手机键盘弹出收起的处理
2020/01/20 HTML / CSS
麦当劳印度网上订餐:McDelivery
2020/03/16 全球购物
团支书的期末学习总结自我评价
2013/11/01 职场文书
美容师的职业规划书
2013/12/27 职场文书
简短证婚人证婚词
2014/01/09 职场文书
网络程序员自荐信
2014/01/25 职场文书
解除租房协议书
2014/12/03 职场文书
2015元旦家电促销活动策划方案
2014/12/09 职场文书
学校中层领导培训心得体会
2016/01/11 职场文书
Python Pandas数据分析之iloc和loc的用法详解
2021/11/11 Python