微信小程序(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() ...
随机推荐
- Oracle数据库链接超级慢或者总提示链接超时
Centos6 今天tomcat应用程序链接数据库总提示链接超时,客户端工具通过tnsnames连接数据库实例进行操作也超级慢, 实在无法忍受, 重启实例试试吧,重启了还是不好使,还是很慢很慢,无比 ...
- spring 中的一些注解功能--不定更新
1@Qualifier注解? 下面的示例将会在Customer的person属性中自动装配Person的值. public class Customer { @Autowired private Pe ...
- 516D Drazil and Morning Exercise
分析 求出直径和最远距离d 之后我们以直径中点为根 发现父亲的d肯定不小于儿子的d 于是从下往上启发式合并维护与子树根的值相差L内的个数即可 代码 #include<bits/stdc++.h& ...
- 【mysql】如何通过navicat配置表与表的多对一关系,一对一关系?设计外键的效果
背景: 现在要将接口自动化测试结果持久化,当前只是每次运行接口测试,将测试结果通过邮件发送给项目组成员.邮件内容如下: 表设计: 为了呈现这个结果:我设计了2张表run_result和run_deta ...
- JavaScript基础之--- 深拷贝与浅拷贝
理解深拷贝和浅拷贝之前,先来看一下JavaScript的数据类型. 1.基本类型和引用类型 //案例1 var num1 = 1, num2 = num1; console.log(num1) con ...
- java.lang.NoSuchMethodError: org.apache.spark.internal.Logging.$init$(Lorg/apache/spark/internal/Logging;)V
1.sparkML的版本不对应 请参考官网找到对于版本, 比如我的 spark2.3.3 spark MLlib 也是2.3.3
- 【Qt开发】QT样式表单 qss的样式优化
QT样式表单 QT的样式表单允许我们在对程序不做任何代码上的更改的情况下轻松改变应用程序的外观. 其思想来源于网页设计中的CSS,即可以将功能设计和美学设计分开. 它的语法和概念和HTML CSS也是 ...
- 关于Goroutine与Channel
关于Goroutine的原理 原理上的内容比较多,比如goroutine启动的时候要执行哪些相关的操作,一点一点的补充一下. channel的基本原理 channel是go语言中的特殊的机制,既可以同 ...
- Quartz任务调度的测试Demo1(含有配置文件的demo)
Quartz是一个作业任务调度的框架,所在项目组中“消息推送模块”使用到此框架,于是写个demo熟悉下quart的用法: 使用Spring框架来集成Quartz的任务调度任务. 1.搭建Spring框 ...
- net 架构师-数据库-sql server-001-SQL Server中的对象
1.1 数据库的构成 1.2 数据库对象概述 1.2.1 数据库对象 RDBMS 关系数据库管理系统 对象:数据库.索引.事务日志.CLR程序集.表 .报表.文件组.全文目录.图表.用户自定义数据类型 ...