从底部向上滑出的动画效果:

用到了小程序的触摸事件bindtouchmove,以及创建一个annimation对象,完成动画操作之后使用animation这个对象的export()方法导出动画数据。

为了阻止多次向上向下滑动,出现多次动画效果,需要增加 ifStop 来判断。

根据 e.touches[0].clientY 的对比,显示相应的动画效果。

  

  1. <!--logs.wxml-->
  2. <view class="box-out" bindtouchstart='startFun' bindtouchmove='showFun' bindtouchend='hideFun'>
  3. <view class="content">
  4. <view>日志内容</view>
  5. <view>日志内容</view>
  6. <view>日志内容</view>
  7. <view>日志内容</view>
  8. <view>日志内容</view>
  9. <view>日志内容</view>
  10. <view>日志内容</view>
  11. <view>日志内容</view>
  12. <view>日志内容</view>
  13. <view>日志内容</view>
  14. <view>日志内容</view>
  15. <view>日志内容</view>
  16. <view>日志内容</view>
  17. <view>日志内容</view>
  18. <view>日志内容</view>
  19. <view>日志内容</view>
  20. <view>日志内容</view>
  21. <view>日志内容</view>
  22. <view>日志内容</view>
  23. <view>日志内容</view>
  24. <view bindtap='clickFun'>点击日志内容1</view>
  25. <view>点击日志内容2</view>
  26. <view>点击日志内容3</view>
  27. <view>点击日志内容4</view>
  28. </view>
  29. <view class="modalDetail" hidden="{{isShow}}"></view>
  30. <scroll-view class="modalDetail__box" scroll-y="{{true}}" style='height: 600rpx;background:#fff;transform: translateY(600px);' animation="{{animationData}}">
  31. 你的展示内容写这里你的展示内容写这里 你的展示内容写这里你的展示内容写这里你的展示内容写这里你的展示内容写这里你的展示内容写这里你的展示内容写这里你的展示内容写这里你的展示内容写这里你的展示内容写这里你的展示内容写这里你的展示内容写这里你的展示内容写这里你的展示内容写这里你的展示内容写这里
  32. </scroll-view>
  33. </view>
  1. .modalDetail{
  2. position: fixed;
  3. left: ;
  4. top: ;
  5. width: %;
  6. height: %;
  7. z-index: ;
  8. background: rgba(, , , 0.5);
  9. }
  10. .modalDetail__box{
  11. position: fixed;
  12. left: ;
  13. bottom: ;
  14. width: %;
  15. height: auto;
  16. z-index: ;
  17. }
  1. //logs.js
  2. Page({
  3. data: {
  4. animationData:'',
  5. startclientY:'',
  6. isShow: true,//底部遮罩
  7. ifStop: true //阻止多次同方向滑动,多次动画效果
  8. },
  9. onLoad: function () {
  10.  
  11. },
  12. clickFun: function () {
  13. console.log('内容1')
  14. },
  15. // bindtouchstart
  16. startFun: function(e){
  17. console.log(e,'start')
  18. this.setData({
  19. startclientY:e.touches[].clientY //起始点的clientY
  20. })
  21. },
  22. // bindtouchmove
  23. showFun: function (e) {
  24. if (e.touches[].clientY > this.data.startclientY){
  25. console.log(this.data.ifStop,'隐藏')
  26. if(this.data.ifStop){
  27. return;
  28. }
  29. console.log('move')
  30. // 隐藏遮罩层
  31. var animation = wx.createAnimation({
  32. duration: 500,
  33. timingFunction: "linear",
  34. delay: 0
  35. })
  36. animation.translateY().step()
  37. this.setData({
  38. animationData: animation.export(),
  39. ifStop: true
  40. })
  41. setTimeout(function () {
  42. animation.translateY().step()
  43. this.setData({
  44. animationData: animation.export(),
  45. isShow: true
  46. })
  47. }.bind(this), )
  48. }else{
  49. console.log(this.data.ifStop,'显示')
  50. if(!this.data.ifStop){
  51. return;
  52. }
  53. console.log('move')
  54. // 显示遮罩层
  55. var animation = wx.createAnimation({
  56. duration: ,
  57. timingFunction: "linear",
  58. delay:
  59. })
  60. animation.translateY().step()
  61. this.setData({
  62. animationData: animation.export(),
  63. ifStop: false
  64. })
  65. setTimeout(function () {
  66. animation.translateY().step()
  67. this.setData({
  68. animationData: animation.export(),
  69. isShow: false
  70. })
  71. }.bind(this), )
  72. }
  73.  
  74. },
  75. // bindtouchend
  76. hideFun: function (e) {
  77. console.log(e,'end')
  78. },
  79. })

微信小程序(19)-- 从底部向上滑出的动画效果的更多相关文章

  1. 图解微信小程序---添加tabBar底部菜单,添加已做好轮播图操作

    图解微信小程序---添加tabBar底部菜单,添加已做好轮播图操作 什么是tabBar? 顶部或者底部tab栏如果小程序是一个多 tab 应用(客户端窗口的底部或顶部有 tab 栏可以切换页面),可以 ...

  2. 微信小程序之自定义底部弹出框动画

    最近做小程序时,会经常用到各种弹框.直接做显示和隐藏虽然也能达到效果,但是体验性太差,也比较简单粗暴.想要美美地玩,添加点动画还是非常有必要的.下面做一个底部上滑的弹框. wxml <view ...

  3. 微信小程序-收货地址左滑删除

    我参照了其中的部分代码,如:bindtouchstart,bindtouchmove,bindtouchend事件多数组中偏移值的更改, 在结合微信 movable-area 和 movable-vi ...

  4. 微信小程序select不能使用,如何实现同样的效果

    如果想实现同样的效果,只能使用小程序组件picker,其中,可以有一列,或者多列 点击链接查看详情: https://mp.weixin.qq.com/debug/wxadoc/dev/compone ...

  5. 微信小程序 滚动到底部

    1.html <view id="bottom"></view> 2. onReady: function () { //滚动到底部 let query = ...

  6. 微信小程序上传文件时弹出当前系统代理不是安全代理,是否信任

    我的开发环境是.net core 启用了https,而微信的开发者工具不认这个证书. 解决办法1:关闭https 然后在 Startup.cs 中关闭注释掉 app.UseHttpsRedirecti ...

  7. 微信小程序商品筛选,侧方弹出动画选择页面

    https://blog.csdn.net/qq_36538012/article/details/85110641

  8. 微信小程序 功能函数picker-view的弹出模态

    <view class="list"> <form bindsubmit="formSubmit"> <view class=&q ...

  9. 微信小程序多图上传/朋友圈传图效果【附完整源码】

    效果图 部分源代码 js文件: var uploadPicture = require('../Frameworks/common.js') //获取应用实例 const app = getApp() ...

随机推荐

  1. selectKey 标签

    原文: https://blog.csdn.net/Sun_of_Rainy/article/details/81564433 在insert语句中,在Oracle经常使用序列.在MySQL中使用函数 ...

  2. Mysql 数据库锁表的原因和解决方法

    摘自: https://www.csdn.net/gather_2f/MtTaIgxsMTM5NC1ibG9n.html 锁表的原因:当多个连接(数据库连接)同时对一个表的数据进行更新操作,那么速度将 ...

  3. 【机器学习速成宝典】模型篇02线性回归【LR】(Python版)

    目录 什么是线性回归 最小二乘法 一元线性回归 多元线性回归 什么是规范化 Python代码(sklearn库) 什么是线性回归(Linear regression) 引例 假设某地区租房价格只与房屋 ...

  4. 【后台管理系统】—— Ant Design Pro 项目爬坑(一)

    1.表单rule中可以分对象处理不同规则 <FormItem label="类型名称" {...formLayout}> { form.getFieldDecorato ...

  5. leetcode-mid-sorting and searching - 240. Search a 2D Matrix II -NO

    mycode   time limited def searchMatrix(matrix, target): def deal(data): if not data: return False ro ...

  6. MyBaits动态sql语句

    1 在接口中书写方法 public interface EmployeeMapperDynamicSQL { public List<Employee> getEmpsTestInnerP ...

  7. 博客侧边栏公告html代码

    前一小段是时钟: 后一段是百度统计,但是显示不出来. 网站概况 - 百度统计 https://tongji.baidu.com/web/25880379/overview/index 趋势分析 - 百 ...

  8. C# WinForm 添加Windows Media Player 控件调试出现未能加载文件或程序集Interop.WMPLib,该怎么解决

    C# WinForm 添加Windows Media Player 控件调试出现未能加载文件或程序集Interop.WMPLib如标题,在窗体中添加Windows Media Player 控件,当调 ...

  9. 分布式任务队列 Celery

    目录 目录 前言 简介 Celery 的应用场景 架构组成 Celery 应用基础 前言 分布式任务队列 Celery,Python 开发者必备技能,结合之前的 RabbitMQ 系列,深入梳理一下 ...

  10. Linux-Spark-Hadoop-Hive安装配置

    1. JAVA安装配置:https://www.cnblogs.com/lamp01/p/8932740.html 2. Spark安装配置:https://www.cnblogs.com/vince ...