Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
hello uni-app x
提交
bb6bdd4f
H
hello uni-app x
项目概览
DCloud
/
hello uni-app x
通知
5995
Star
90
Fork
162
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
18
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hello uni-app x
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
18
Issue
18
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
bb6bdd4f
编写于
11月 27, 2023
作者:
shutao-dc
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加小球拖拽 touch-event.uvue 测试touch的screenX\Y
上级
768de6be
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
128 addition
and
1 deletion
+128
-1
pages.json
pages.json
+8
-0
pages/component/general-event/touch-event.uvue
pages/component/general-event/touch-event.uvue
+113
-0
pages/tabBar/component.uvue
pages/tabBar/component.uvue
+7
-1
未找到文件。
pages.json
浏览文件 @
bb6bdd4f
...
...
@@ -1075,6 +1075,14 @@
"navigationBarTitleText"
:
"分享"
,
"enablePullDownRefresh"
:
false
}
},
{
"path"
:
"pages/component/general-event/touch-event"
,
"style"
:
{
"navigationBarTitleText"
:
"touch-event"
,
"enablePullDownRefresh"
:
false
}
}
],
...
...
pages/component/general-event/touch-event.uvue
0 → 100644
浏览文件 @
bb6bdd4f
<template>
<page-head title="拖拽图标测试相关事件"></page-head>
<view class="container">
<view class="view-box">
<image class="icon" id="icon" src="../image/logo.png" @touchstart="onTouchStart" @touchcancel="onTouchCancel" @touchmove="onTouchMove" @touchend="onTouchEnd"></image>
</view>
</view>
<view v-if="touchEvent !== null">
<text class="title1">touches: </text>
<template v-for="(touch, index) in touchEvent!.touches" :key="index">
<text class="title2">touch[{{ index }}]:</text>
<text>identifier: {{touch.identifier}}</text>
<text>pageX: {{ touch.pageX }}, pageY: {{ touch.pageY }}</text>
<text>clientX: {{ touch.clientX }}, clientY: {{ touch.clientY }}</text>
<text>screenX: {{ touch.screenX }}, screenY: {{ touch.screenY }}</text>
</template>
</view>
</template>
<script>
export default {
data() {
return {
move: false,
posX: 0,
posY: 0,
lastX: 0,
lastY: 0,
touchEvent: null as TouchEvent | null,
icon: null as Element | null
}
},
onReady() {
this.icon = uni.getElementById("icon")
},
methods: {
onTouchStart(e: TouchEvent) {
this.touchEvent = e
if(!this.move) {
this.move = true
this.posX = e.touches[0].screenX
this.posY = e.touches[0].screenY
}
},
onTouchMove(e: TouchEvent) {
this.touchEvent = e
let p = e.touches[0]
if(p.screenX == this.lastX && p.screenY == this.lastY){
return
}
let x = p.screenX-this.posX
let y = p.screenY-this.posY
this.lastX = p.screenX
this.lastY = p.screenY
this.icon?.style?.setProperty('transform', 'translate('+x+'px,'+y+'px)')
},
onTouchEnd(e: TouchEvent) {
if(e.touches.length == 0) {
this.resetIcon()
this.touchEvent = null
}
},
onTouchCancel(_: TouchEvent) {
this.resetIcon()
this.touchEvent = null
},
resetIcon() {
this.move = false;
this.posX = 0;
this.posY = 0;
this.icon?.style?.setProperty('transform', 'translate(0px,0px)')
}
}
}
</script>
<style>
.container {
width: 100%;
flex-direction: column;
align-items: center;
}
.view-box {
width: 300px;
height: 300px;
align-items: center;
justify-content: center;
border-style: solid;
}
.icon {
width: 100px;
height: 100px;
}
.msg-text {
margin-bottom: 100px;
}
.title1 {
margin-top: 10px;
font-size: 18px;
}
.title2 {
margin-top: 5px;
font-size: 16px;
}
</style>
pages/tabBar/component.uvue
浏览文件 @
bb6bdd4f
...
...
@@ -264,7 +264,13 @@ export default {
name: '通用事件',
url: '/pages/component/general-event/general-event',
enable: true,
},{
},
{
name: 'touch事件',
url: '/pages/component/general-event/touch-event',
enable: true,
},
{
name: 'Transition事件',
url: '/pages/component/general-event/transition-event',
enable: true,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录