微信小程序(19)-- 从底部向上滑出的动画效果
从底部向上滑出的动画效果:
用到了小程序的触摸事件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)-- 从底部向上滑出的动画效果的更多相关文章
- 图解微信小程序---添加tabBar底部菜单,添加已做好轮播图操作
图解微信小程序---添加tabBar底部菜单,添加已做好轮播图操作 什么是tabBar? 顶部或者底部tab栏如果小程序是一个多 tab 应用(客户端窗口的底部或顶部有 tab 栏可以切换页面),可以 ...
- 微信小程序之自定义底部弹出框动画
最近做小程序时,会经常用到各种弹框.直接做显示和隐藏虽然也能达到效果,但是体验性太差,也比较简单粗暴.想要美美地玩,添加点动画还是非常有必要的.下面做一个底部上滑的弹框. wxml <view ...
- 微信小程序-收货地址左滑删除
我参照了其中的部分代码,如:bindtouchstart,bindtouchmove,bindtouchend事件多数组中偏移值的更改, 在结合微信 movable-area 和 movable-vi ...
- 微信小程序select不能使用,如何实现同样的效果
如果想实现同样的效果,只能使用小程序组件picker,其中,可以有一列,或者多列 点击链接查看详情: https://mp.weixin.qq.com/debug/wxadoc/dev/compone ...
- 微信小程序 滚动到底部
1.html <view id="bottom"></view> 2. onReady: function () { //滚动到底部 let query = ...
- 微信小程序上传文件时弹出当前系统代理不是安全代理,是否信任
我的开发环境是.net core 启用了https,而微信的开发者工具不认这个证书. 解决办法1:关闭https 然后在 Startup.cs 中关闭注释掉 app.UseHttpsRedirecti ...
- 微信小程序商品筛选,侧方弹出动画选择页面
https://blog.csdn.net/qq_36538012/article/details/85110641
- 微信小程序 功能函数picker-view的弹出模态
<view class="list"> <form bindsubmit="formSubmit"> <view class=&q ...
- 微信小程序多图上传/朋友圈传图效果【附完整源码】
效果图 部分源代码 js文件: var uploadPicture = require('../Frameworks/common.js') //获取应用实例 const app = getApp() ...
随机推荐
- JAVA单例模式的实现伪代码
什么是单例?:其定义是单例对象的类只能允许一个实例存在 单例的实现基本原理:1.将该类的构造方法定义为私有访问,不对外暴露从而使其他类不能实例化该类对象,只能通过该类的静态方法得到该类的唯一实例 2. ...
- 程序员心髓:移动应用API设计10大技巧
移动App与基于Web/云服务发生对话是很常见的事情,最简单的可能仅仅只是检索数据,但也可能包含发送数据.用户授权和管理.而这也就验证了为移动应用建立API的重要性,为此,我们特总结了10大移动API ...
- js2flowchart
https://github.com/Bogdan-Lyashenko/js-code-to-svg-flowchart js2flowchart - a visualization library ...
- angular 的跨域处理
angular 的跨域处理,由于不并不支持跨域处理,所以我们对他也是无可奈何,angular 的跨域处理,需要我们在服务器上进行处理,把请求的数据改成 * ,也就是,谁都可以请求数据: angular ...
- leetcode-mid-dynamic programming-55. Jump Game
mycode 71.47% 思路: 既然要到达终点,那么俺就可以倒推,要想到达n,可以有以下情况 1)到达n-1,然后该位置最少可以走一步 2)到达n-2,然后该位置最少可以走两步 3)到达n-3, ...
- Flink数据流图的生成----简单执行计划的生成
Flink的数据流图的生成主要分为简单执行计划-->StreamGraph的生成-->JobGraph的生成-->ExecutionGraph的生成-->物理执行图.其中前三个 ...
- IIS Express 使用方法
配置文件位置: "%userprofile%\My Documents\IISExpress\config\applicationhost.config" 站点配置节: <s ...
- 2019暑假第二周(hadoop在个人电脑上的搭建)
一,Hadoop和NoSQL数据库的学习,大多需要Linux环境. 搭建Linux环境可以分为两种方式: (1)在电脑上安装双操作系统,即同时安装Linux和Windows操作系统,在电脑启动的时候, ...
- 【Linux开发】【Qt开发】QT 同时支持鼠标和触摸屏
QT 同时支持鼠标和触摸屏 现在 如果我要使用鼠标 导入环境变量 export QWS_MOUSE_PROTO=MouseMan:/dev/input/mice 使用触摸屏,导入环境变量 export ...
- Eclipse."Courier New"字体
1.Win 7 下eclipse添加Courier New字体 - 彦帅的博客.html(https://blog.csdn.net/theblackbeard/article/details/525 ...