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

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

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

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

  

<!--logs.wxml-->
<view class="box-out" bindtouchstart='startFun' bindtouchmove='showFun' bindtouchend='hideFun'>
<view class="content">
<view>日志内容</view>
<view>日志内容</view>
<view>日志内容</view>
<view>日志内容</view>
<view>日志内容</view>
<view>日志内容</view>
<view>日志内容</view>
<view>日志内容</view>
<view>日志内容</view>
<view>日志内容</view>
<view>日志内容</view>
<view>日志内容</view>
<view>日志内容</view>
<view>日志内容</view>
<view>日志内容</view>
<view>日志内容</view>
<view>日志内容</view>
<view>日志内容</view>
<view>日志内容</view>
<view>日志内容</view>
<view bindtap='clickFun'>点击日志内容1</view>
<view>点击日志内容2</view>
<view>点击日志内容3</view>
<view>点击日志内容4</view>
</view>
<view class="modalDetail" hidden="{{isShow}}"></view>
<scroll-view class="modalDetail__box" scroll-y="{{true}}" style='height: 600rpx;background:#fff;transform: translateY(600px);' animation="{{animationData}}">
你的展示内容写这里你的展示内容写这里 你的展示内容写这里你的展示内容写这里你的展示内容写这里你的展示内容写这里你的展示内容写这里你的展示内容写这里你的展示内容写这里你的展示内容写这里你的展示内容写这里你的展示内容写这里你的展示内容写这里你的展示内容写这里你的展示内容写这里你的展示内容写这里
</scroll-view>
</view>
.modalDetail{
position: fixed;
left: ;
top: ;
width: %;
height: %;
z-index: ;
background: rgba(, , , 0.5);
}
.modalDetail__box{
position: fixed;
left: ;
bottom: ;
width: %;
height: auto;
z-index: ;
}
//logs.js
Page({
data: {
animationData:'',
startclientY:'',
isShow: true,//底部遮罩
ifStop: true //阻止多次同方向滑动,多次动画效果
},
onLoad: function () { },
clickFun: function () {
console.log('内容1')
},
// bindtouchstart
startFun: function(e){
console.log(e,'start')
this.setData({
startclientY:e.touches[].clientY //起始点的clientY
})
},
// bindtouchmove
showFun: function (e) {
if (e.touches[].clientY > this.data.startclientY){
console.log(this.data.ifStop,'隐藏')
if(this.data.ifStop){
return;
}
console.log('move')
// 隐藏遮罩层
var animation = wx.createAnimation({
duration: 500,
timingFunction: "linear",
delay: 0
})
animation.translateY().step()
this.setData({
animationData: animation.export(),
ifStop: true
})
setTimeout(function () {
animation.translateY().step()
this.setData({
animationData: animation.export(),
isShow: true
})
}.bind(this), )
}else{
console.log(this.data.ifStop,'显示')
if(!this.data.ifStop){
return;
}
console.log('move')
// 显示遮罩层
var animation = wx.createAnimation({
duration: ,
timingFunction: "linear",
delay:
})
animation.translateY().step()
this.setData({
animationData: animation.export(),
ifStop: false
})
setTimeout(function () {
animation.translateY().step()
this.setData({
animationData: animation.export(),
isShow: false
})
}.bind(this), )
} },
// bindtouchend
hideFun: function (e) {
console.log(e,'end')
},
})

微信小程序(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. Mongodb分片副本集集群搭建

    一.环境准备 1.1.主机信息(机器配置要求见硬件及开发标准规范文档V1.0) 序号 主机名 IP 1 DB_01 10.202.105.52 2 DB_02 10.202.105.53 3 DB_0 ...

  2. Hive数据导入Elasticsearch

    Elasticsearch Jar包准备 所有节点导入elasticsearch-hadoop-5.5.1.jar /opt/cloudera/parcels/CDH-5.12.0-1.cdh5.12 ...

  3. k8s中pod内dns无法解析的问题

    用k8s创建了pod,然后进入pod后,发现在pod中无法解析www.baidu.com,也就是出现了无法解析外面的域名的问题.经过高人指点,做个小总结.操作如下. 一,将CoreDNS 的Confi ...

  4. json-server 服务器的接口

    服务器接口的数据在浏览器网络地址中,便可查看: 获取接口的数据需要在网络地址后面,填写接口的名字即可,(对于 json-server来说)

  5. lr_save_string和sprintf、lr_eval_string的使用

    一.lr_save_string函数 1.该函数主要是将程序中的常量或变量保存为参数: //将常量保存为参数 lr_save_string("777","page&quo ...

  6. 基于DRF的图书增删改查练习

    功能演示 信息展示 添加功能 编辑功能 删除功能 DRF构建后台数据 本例的Model如下 from django.db import models class Publish(models.Mode ...

  7. leetcode 53. Maximum Subarray 、152. Maximum Product Subarray

    53. Maximum Subarray 之前的值小于0就不加了.dp[i]表示以i结尾当前的最大和,所以需要用一个变量保存最大值. 动态规划的方法: class Solution { public: ...

  8. 子系统kali安装桌面

    理论上讲,所有Win10的Linux子系统都可以通过Windows10本机远程桌面和Xming的方法来安装使用图形化界面,笔者目前只接触了Debian系的Linux系统,故以Debian GNU/Li ...

  9. C++拷贝构造函数心得

    C++Primer作者提到拷贝构造函数调用的三种时机: 1. 当用一个类对象去初始化另外一个类对象(类似于 AClass aInstance = bInstance),这里不是调用赋值构造函数(也叫赋 ...

  10. JVM参数配置及内存调优

    一.JVM常见参数配置 堆内存相关参数 参数名称 含义 默认值   -Xms 初始堆大小 物理内存的1/64(<1GB) 默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40% ...