当前位置:网站首页>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
边栏推荐
- How to test MDM products
- Cocoscreator event dispatch use
- kaili不能输入中文怎么办???
- Performance test of Gatling
- Is it safe for Great Wall Securities to open an account? How to open a securities account
- Two methods of MD5 encryption
- Interpretation of data security governance capability evaluation framework 2.0, the fourth batch of DSG evaluation collection
- Introduction of time related knowledge in kernel
- Implementation of super large-scale warehouse clusters in large commercial banks
- 使用3DMAX制作一枚手雷
猜你喜欢
NFT流动性市场安全问题频发—NFT交易平台Quixotic被黑事件分析
Interpretation of data security governance capability evaluation framework 2.0, the fourth batch of DSG evaluation collection
What is low code development?
What if Kaili can't input Chinese???
To sort out messy header files, I use include what you use
【Unity UGUI】ScrollRect 动态缩放格子大小,自动定位到中间的格子
Master the use of auto analyze in data warehouse
我写了一份初学者的学习实践教程!
一文掌握数仓中auto analyze的使用
离线、开源版的 Notion—— 笔记软件Anytype 综合评测
随机推荐
Hidden corners of coder Edition: five things that developers hate most
Detectron2 installation method
Mathematical analysis_ Notes_ Chapter 7: differential calculus of multivariate functions
What if Kaili can't input Chinese???
完美融入 Win11 风格,微软全新 OneDrive 客户端抢先看
国产数据库TiDB初体验:简单易用,快速上手
Firewall basic transparent mode deployment and dual machine hot standby
设置窗体透明 隐藏任务栏 与全屏显示
The company needs to be monitored. How do ZABBIX and Prometheus choose? That's the right choice!
【华为HCIA持续更新】SDN与FVC
[HCIA continuous update] overview of WLAN workflow
Vscode modification indentation failed, indent four spaces as soon as it is saved
公司要上监控,Zabbix 和 Prometheus 怎么选?这么选准没错!
Web game engine
Introduction of time related knowledge in kernel
Oppo Xiaobu launched Obert, a large pre training model, and promoted to the top of kgclue
补能的争议路线:快充会走向大一统吗?
超大规模数仓集群在大型商业银行的落地实践
Datakit -- the real unified observability agent
Pytorch深度学习之环境搭建