当前位置:网站首页>Achieve animation effect through event binding
Achieve animation effect through event binding
2022-07-04 17:48:00 【richest_ qi】
List of articles
Antecedents feed
The types of events involved in this example are :
touchstart
, Finger touch action Start Trigger when .touchmove
, After touching the fingers Move Trigger when .touchend
, Finger touch action end Trigger when .
Event triggered , The event handler function will receive an event object , The attributes contained in the event object vary slightly depending on the type of event , among , The attributes of rain and dew are :
type
, Event type .timeStamp
, Time stamp when the event was generated .target
, It's an object , Contains the following properties :id
, Of the event source component id.dataset
, On the event source component by data- A collection of custom properties at the beginning .
currentTarget
, It's an object , Contains the following properties :id
, Of the current component id.dataset
, The current component consists of data- A collection of custom properties at the beginning .
mark
, Event marker data .
In addition to the above basic attributes ,TouchEvent The event object of also contains the following properties :
touches
, A collection of touch point information currently on the screen .touches
Is an array , Each array element is a Touch object , Indicates the touch point currently on the screen .Touch Object contains the following properties :identifier
, value type , Is the identifier of the touch point .pageX
, Horizontal distance from the upper left corner of the document .pageY
, The vertical distance from the upper left corner of the document .clientX
, The horizontal distance from the upper left corner of the visible area of the page .clientY
, The vertical distance from the upper left corner of the visible area of the page .
changedTouches
, Array of currently changing touchpoint information .
Applet project
The main files involved in the code are :
- app.json
- pages/index/index.wxml
- pages/index/index.wxss
- pages/index/index.js
app.json
{
"pages": [
"pages/index/index"
],
"window": {
"navigationBarBackgroundColor": "#971a22",
"navigationBarTitleText": " home page ",
"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"
})
}
})
Related links
边栏推荐
- Superscalar processor design yaoyongbin Chapter 5 instruction set excerpt
- Ks007 realizes personal blog system based on JSP
- NFT流动性市场安全问题频发—NFT交易平台Quixotic被黑事件分析
- Interpretation of data security governance capability evaluation framework 2.0, the fourth batch of DSG evaluation collection
- 缓存穿透、缓存击穿、缓存雪崩分别是什么
- Analysis of I2C adapter driver of s5pv210 chip (i2c-s3c2410. C)
- To sort out messy header files, I use include what you use
- Summary of tx.origin security issues
- Blood spitting finishing nanny level series tutorial - play Fiddler bag grabbing tutorial (2) - first meet fiddler, let you have a rational understanding
- 【Hot100】31. 下一个排列
猜你喜欢
Recast of recastnavigation
Zhijieyun - meta universe comprehensive solution service provider
智捷云——元宇宙综合解决方案服务商
估值900亿,超级芯片IPO来了
Blood spitting finishing nanny level series tutorial - play Fiddler bag grabbing tutorial (2) - first meet fiddler, let you have a rational understanding
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(2)-初识Fiddler让你理性认识一下
DataKit——真正的统一可观测性 Agent
完美融入 Win11 风格,微软全新 OneDrive 客户端抢先看
就在今天丨汇丰4位专家齐聚,共讨银行核心系统改造、迁移、重构难题
VSCode修改缩进不成功,一保存就缩进四个空格
随机推荐
新享科技发布小程序UniPro小优 满足客户移动办公场景
Chow Tai Fook fulfills the "centenary commitment" and sincerely serves to promote green environmental protection
Interpretation of data security governance capability evaluation framework 2.0, the fourth batch of DSG evaluation collection
regular expression
curl 命令妙用
Oppo Xiaobu launched Obert, a large pre training model, and promoted to the top of kgclue
Cann operator: using iterators to efficiently realize tensor data cutting and blocking processing
【每日一题】871. 最低加油次数
RecastNavigation 之 Recast
Is it safe for Great Wall Securities to open an account? How to open a securities account
Hidden corners of coder Edition: five things that developers hate most
补能的争议路线:快充会走向大一统吗?
Zhijieyun - meta universe comprehensive solution service provider
Display opencv drawn pictures on MFC picture control control
shell脚本的替换功能实现
The company needs to be monitored. How do ZABBIX and Prometheus choose? That's the right choice!
OPPO小布推出预训练大模型OBERT,晋升KgCLUE榜首
居家打工年入800多万,一共五份全职工作,他还有时间打游戏
To sort out messy header files, I use include what you use
中断的顶半部和底半部介绍以及实现方式(tasklet 和 工作队列)