Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
我本凡人 一念云泥
uni-app
提交
41bb9a7e
uni-app
项目概览
我本凡人 一念云泥
/
uni-app
与 Fork 源项目一致
Fork自
DCloud / uni-app
通知
4
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
41bb9a7e
编写于
2月 18, 2020
作者:
Q
qiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: touchtrack 兼容鼠标事件
上级
05d5bf58
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
49 addition
and
11 deletion
+49
-11
src/core/view/mixins/touchtrack.js
src/core/view/mixins/touchtrack.js
+49
-11
未找到文件。
src/core/view/mixins/touchtrack.js
浏览文件 @
41bb9a7e
var
addListenerToElement
=
function
(
element
,
type
,
callback
,
r
)
{
// 暂时忽略capture
const
addListenerToElement
=
function
(
element
,
type
,
callback
,
capture
)
{
// 暂时忽略
capture
element
.
addEventListener
(
type
,
$event
=>
{
if
(
typeof
callback
===
'
function
'
)
{
if
(
callback
(
$event
)
===
false
)
{
...
...
@@ -13,14 +13,18 @@ var addListenerToElement = function (element, type, callback, r) {
}
export
default
{
beforeDestroy
()
{
document
.
removeEventListener
(
'
mousemove
'
,
this
.
__mouseMoveEventListener
)
document
.
removeEventListener
(
'
mouseup
'
,
this
.
__mouseUpEventListener
)
},
methods
:
{
touchtrack
:
function
(
element
,
method
,
useCancel
)
{
var
self
=
this
var
x0
=
0
var
y0
=
0
var
x1
=
0
var
y1
=
0
var
fn
=
function
(
$event
,
state
,
x
,
y
)
{
const
self
=
this
let
x0
=
0
let
y0
=
0
let
x1
=
0
let
y1
=
0
const
fn
=
function
(
$event
,
state
,
x
,
y
)
{
if
(
self
[
method
]({
target
:
$event
.
target
,
currentTarget
:
$event
.
currentTarget
,
...
...
@@ -43,32 +47,66 @@ export default {
}
}
var
$eventOld
=
null
let
$eventOld
=
null
let
hasTouchStart
let
hasMouseDown
addListenerToElement
(
element
,
'
touchstart
'
,
function
(
$event
)
{
if
(
$event
.
touches
.
length
===
1
&&
!
$eventOld
)
{
hasTouchStart
=
true
$eventOld
=
$event
x0
=
x1
=
$event
.
touches
[
0
].
pageX
y0
=
y1
=
$event
.
touches
[
0
].
pageY
return
fn
(
$event
,
'
start
'
,
x0
,
y0
)
}
})
addListenerToElement
(
element
,
'
mousedown
'
,
function
(
$event
)
{
hasMouseDown
=
true
if
(
!
hasTouchStart
)
{
// TODO touches changedTouches
$eventOld
=
$event
x0
=
x1
=
$event
.
pageX
y0
=
y1
=
$event
.
pageY
return
fn
(
$event
,
'
start
'
,
x0
,
y0
)
}
})
addListenerToElement
(
element
,
'
touchmove
'
,
function
(
$event
)
{
if
(
$event
.
touches
.
length
===
1
&&
$eventOld
)
{
var
res
=
fn
(
$event
,
'
move
'
,
$event
.
touches
[
0
].
pageX
,
$event
.
touches
[
0
].
pageY
)
const
res
=
fn
(
$event
,
'
move
'
,
$event
.
touches
[
0
].
pageX
,
$event
.
touches
[
0
].
pageY
)
x1
=
$event
.
touches
[
0
].
pageX
y1
=
$event
.
touches
[
0
].
pageY
return
res
}
})
const
mouseMoveEventListener
=
this
.
__mouseMoveEventListener
=
function
(
$event
)
{
if
(
!
hasTouchStart
&&
hasMouseDown
)
{
// TODO target currentTarget touches changedTouches
const
res
=
fn
(
$event
,
'
move
'
,
$event
.
pageX
,
$event
.
pageY
)
x1
=
$event
.
pageX
y1
=
$event
.
pageY
return
res
}
}
document
.
addEventListener
(
'
mousemove
'
,
mouseMoveEventListener
)
addListenerToElement
(
element
,
'
touchend
'
,
function
(
$event
)
{
if
(
$event
.
touches
.
length
===
0
&&
$eventOld
)
{
hasTouchStart
=
false
$eventOld
=
null
return
fn
(
$event
,
'
end
'
,
$event
.
changedTouches
[
0
].
pageX
,
$event
.
changedTouches
[
0
].
pageY
)
}
})
const
mouseUpEventListener
=
this
.
__mouseUpEventListener
=
function
(
$event
)
{
hasMouseDown
=
false
if
(
!
hasTouchStart
)
{
// TODO target currentTarget touches changedTouches
$eventOld
=
null
return
fn
(
$event
,
'
end
'
,
$event
.
pageX
,
$event
.
pageY
)
}
}
document
.
addEventListener
(
'
mouseup
'
,
mouseUpEventListener
)
addListenerToElement
(
element
,
'
touchcancel
'
,
function
(
$event
)
{
if
(
$eventOld
)
{
var
$eventTemp
=
$eventOld
hasTouchStart
=
false
const
$eventTemp
=
$eventOld
$eventOld
=
null
return
fn
(
$event
,
useCancel
?
'
cancel
'
:
'
end
'
,
$eventTemp
.
touches
[
0
].
pageX
,
$eventTemp
.
touches
[
0
].
pageY
)
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录