当前位置:网站首页>通过事件绑定实现动画效果
通过事件绑定实现动画效果
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"
})
}
})
相关链接
边栏推荐
- Rainfall warning broadcast automatic data platform bwii broadcast warning monitor
- [HCIA continuous update] overview of WLAN workflow
- 整理混乱的头文件,我用include what you use
- Offline and open source version of notation -- comprehensive evaluation of note taking software anytype
- What grade does Anxin securities belong to? Is it safe to open an account
- gatling 之性能测试
- What if Kaili can't input Chinese???
- 离线、开源版的 Notion—— 笔记软件Anytype 综合评测
- CocosCreator事件派发使用
- 超标量处理器设计 姚永斌 第5章 指令集体系 摘录
猜你喜欢
Talk about seven ways to realize asynchronous programming
[test development] software testing - Basics
Easy to use map visualization
NFT liquidity market security issues occur frequently - Analysis of the black incident of NFT trading platform quixotic
Cann operator: using iterators to efficiently realize tensor data cutting and blocking processing
【HCIA持续更新】WLAN工作流程概述
The company needs to be monitored. How do ZABBIX and Prometheus choose? That's the right choice!
CocosCreator事件派发使用
NFT流动性市场安全问题频发—NFT交易平台Quixotic被黑事件分析
Which domestic cloud management platform manufacturer is good in 2022? Why?
随机推荐
curl 命令妙用
太方便了,钉钉上就可完成代码发布审批啦!
整理混乱的头文件,我用include what you use
NFT流动性市场安全问题频发—NFT交易平台Quixotic被黑事件分析
To sort out messy header files, I use include what you use
[acwing] 58 weeks 4490 dyeing
The Ministry of human resources and Social Security announced the new construction occupation
detectron2安装方法
Superscalar processor design yaoyongbin Chapter 6 instruction decoding excerpt
你应该懂些CI/CD
R language plot visualization: plot visualization of multiple variable violin plot in R with plot
VB cannot access database stocks
离线、开源版的 Notion—— 笔记软件Anytype 综合评测
Pytorch deep learning quick start tutorial
Firewall basic transparent mode deployment and dual machine hot standby
CocosCreator事件派發使用
简单易用的地图可视化
[unity ugui] scrollrect dynamically scales the grid size and automatically locates the middle grid
就在今天丨汇丰4位专家齐聚,共讨银行核心系统改造、迁移、重构难题
R language plot visualization: plot visualizes overlapping histograms and uses geom at the top edge of the histogram_ The rug function adds marginal rug plots