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

用到了小程序的触摸事件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. C++引用与传参

    # include <iostream> using namespace std; void Swap(int *pa, int *pb) { int t = *pa; *pa = *pb ...

  2. 2018-5 - 热经 - 北京中地时空数码科技有限公司 - 研发工程师(WEBGIS 方向)

    一面: 登记,填写个人信息 笔试 选择题: HTML,CSS,JS 的选择题,都是基础题.其中有一道问哪个不是 document 的属性或方法,我在 bgColor 和 focus() 上面纠结了一下 ...

  3. C# .Net动态调用webService实现思路及代码

    加载: using System; using System.Collections.Generic; using System.Linq; using System.Web; using Syste ...

  4. 【漏洞复现】局域网 ARP 中间人攻击 获取他人账号密码

    日期:2019-07-18 14:24:42 更新: 作者:Bay0net 介绍:如何在局域网内,窃取其他用户的账号密码? 0x01. 漏洞环境 攻击工具 arpspoof 基本用法: arpspoo ...

  5. Mybatis使用时 resultMap与resultType、parameterMap与 parameterType的区别

    Map:映射:Type:Java类型  resultMap 与 resultType.parameterMap 与  parameterType的区别在面试的时候被问到的几率非常高,出现的次数到了令人 ...

  6. SpringMVC +Spring + MyBatis + Mysql + Redis(作为二级缓存) 配置

    转载:http://blog.csdn.net/xiadi934/article/details/50786293 项目环境: 在SpringMVC +Spring + MyBatis + MySQL ...

  7. Spring MVC对日期处理的不友好问题

    一.后台日期类型解析到前端 1.在springmvc的配置文件中添加这个.annotation-driven在配置文件中只配置一次     (此方法全局作用)<mvc:annotation-dr ...

  8. .net通用签名方法 webapi签名方法

    验证签名方法 [HttpGet] public HttpResponseMessage LockRegister(string 参数1, int 参数2, string 参数3, string 参数4 ...

  9. 【计算机视觉】HDR之tone mapping简介

    tone Mapping原是摄影学中的一个术语,因为打印相片所能表现的亮度范围不足以表现现实世界中的亮度域,而如果简单的将真实世界的整个亮度域线性压缩到照片所能表现的亮度域内,则会在明暗两端同时丢失很 ...

  10. 网络通讯数据.传输json(java<==>C#)

    ZC:主要是测试解决 时间转成JSON不一样的问题 ZC:java中转换时间格式的关键是“JSONUtils.getMorpherRegistry().registerMorpher(new Date ...