当前位置:网站首页>通过事件绑定实现动画效果
通过事件绑定实现动画效果
2022-07-04 16:03:00 【richest_qi】
前情提要
本例涉及的事件类型有:
touchstart,手指触摸动作开始 时触发。touchmove,手指触摸后移动 时触发。touchend,手指触摸动作结束 时触发。
事件触发时,事件处理函数会接收到一个事件对象,该事件对象包含的属性因事件类型不同而有些许差异,其中,雨露均沾的属性有:
type,事件类型。timeStamp,事件生成时的时间戳。target,是一个对象,包含如下属性:id,事件源组件的id。dataset,事件源组件上的由data-开头的自定义属性组成的集合。
currentTarget,是一个对象,包含如下属性:id,当前组件的id。dataset,当前组件上由data-开头的自定义属性组成的集合。
mark,事件标记数据。
除了以上基础属性,TouchEvent的事件对象还包含如下属性:
touches,当前停留在屏幕上的触摸点信息的集合。touches是一个数组,每个数组元素是一个Touch对象,表示当前停留在屏幕上的触摸点。Touch对象包含如下属性:identifier,数值类型,是触摸点的标识符。pageX,距离文档左上角的横向距离。pageY,距离文档左上角的纵向距离。clientX,距离页面可视区域左上角的横向距离。clientY,距离页面可视区域左上角的纵向距离。
changedTouches,当前变化的触摸点信息的数组。
小程序项目
代码涉及的主要文件有:
- app.json
- pages/index/index.wxml
- pages/index/index.wxss
- pages/index/index.js

app.json
{
"pages": [
"pages/index/index"
],
"window": {
"navigationBarBackgroundColor": "#971a22",
"navigationBarTitleText": "首页",
"navigationBarTextStyle": "white"
},
"style": "v2",
"sitemapLocation": "sitemap.json"
}
pages/index/index.wxml
<view class="indexContainer">
<view class="header"></view>
<view class="content" bindtouchstart="handleTouchStart" bindtouchmove="handleTouchMove" bindtouchend="handleTouchEnd" style="transform: translateY({
{
moveDistance}}rpx);transition: {
{
transitionSettings}};" >
<image src="/static/images/arc.png"></image>
</view>
</view>
pages/index/index.wxss
.indexContainer{
padding: 0 20rpx;
}
.header{
margin-top: 10rpx;
background: lightskyblue;
height: 300rpx;
border-radius: 10rpx;
}
.content{
margin-top: -100rpx;
height: 600rpx;
background: #f7f7f7;
border-bottom-right-radius: 10rpx;
border-bottom-left-radius: 10rpx;
position: relative;
}
.content image{
position: absolute;
top: -40rpx;
width: 100%;
height: 40rpx;
}
pages/index/index.js
let startY = 0;
let endY = 0;
let distance = 0;
let MIN_DIS = 0;
let MAX_DIS = 80
Page({
data:{
moveDistance:0,
transitionSettings:"none"
},
handleTouchStart(e){
// console.log("touch start");
startY = e.touches[0].clientY;
this.setData({
transitionSettings:"none"
})
},
handleTouchMove(e){
// console.log("touch move");
endY = e.touches[0].clientY;
distance = endY - startY;
if(distance < MIN_DIS) return;
if(distance > MAX_DIS) distance = MAX_DIS;
this.setData({
moveDistance:distance
})
},
handleTouchEnd(){
// console.log("touch end");
this.setData({
moveDistance:0,
transitionSettings:"transform .5s linear"
})
}
})
相关链接
边栏推荐
- 网页游戏引擎
- 斑马识别成狗,AI犯错的原因被斯坦福找到了丨开源
- How to implement a delay queue?
- [acwing] 58 weeks 4490 dyeing
- Analysis of abnormal frequency of minor GC in container environment
- 安信证券属于什么档次 开户安全吗
- [acwing] 58 weeks 4489 Longest subsequence
- To sort out messy header files, I use include what you use
- R语言plotly可视化:plotly可视化多分类变量小提琴图(multiple variable violin plot in R with plotly)
- Rebalance operation in spark and its difference from repartition operation
猜你喜欢

Electronic pet dog - what is the internal structure?
![[test development] software testing - Basics](/img/43/514016f270574fe711e0e15b581022.png)
[test development] software testing - Basics
![[unity ugui] scrollrect dynamically scales the grid size and automatically locates the middle grid](/img/0d/a8f4424add7785375741bac4f0b802.png)
[unity ugui] scrollrect dynamically scales the grid size and automatically locates the middle grid

Superscalar processor design yaoyongbin Chapter 6 instruction decoding excerpt

如何进行MDM的产品测试

NFT liquidity market security issues occur frequently - Analysis of the black incident of NFT trading platform quixotic

Load test practice of pingcode performance test

7 RSA Cryptosystem

离线、开源版的 Notion—— 笔记软件Anytype 综合评测

超标量处理器设计 姚永斌 第6章 指令解码 摘录
随机推荐
关于nacos启动时防火墙开启8848的坑
Rainfall warning broadcast automatic data platform bwii broadcast warning monitor
Zhijieyun - meta universe comprehensive solution service provider
Win32 API 访问路由的加密网页
开发者,MySQL专栏完更,助你轻松从安装到入门进阶
设置窗体透明 隐藏任务栏 与全屏显示
The Block:USDD增长势头强劲
Ks007 realizes personal blog system based on JSP
超标量处理器设计 姚永斌 第6章 指令解码 摘录
leetcode:421. The maximum XOR value of two numbers in the array
图像检索(image retrieval)
Electronic pet dog - what is the internal structure?
斑马识别成狗,AI犯错的原因被斯坦福找到了丨开源
[HCIA continuous update] overview of WLAN workflow
OPPO小布推出预训练大模型OBERT,晋升KgCLUE榜首
[unity ugui] scrollrect dynamically scales the grid size and automatically locates the middle grid
Is it safe for CITIC Securities to open an account online? Is the account opening fee charged
整理混乱的头文件,我用include what you use
你应该懂些CI/CD
What grade does Anxin securities belong to? Is it safe to open an account