Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DiDi
cube-ui
提交
feedd0fe
C
cube-ui
项目概览
DiDi
/
cube-ui
10 个月 前同步成功
通知
34
Star
9078
Fork
1508
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
cube-ui
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
GitCode(gitcode.net)2024年7月9日维护升级公告
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
feedd0fe
编写于
3月 12, 2018
作者:
U
ustbhuangyi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
optimize the perfermance of swipe-item
上级
79dceae4
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
35 addition
and
19 deletion
+35
-19
src/components/swipe/swipe-item.vue
src/components/swipe/swipe-item.vue
+35
-19
未找到文件。
src/components/swipe/swipe-item.vue
浏览文件 @
feedd0fe
...
...
@@ -29,7 +29,6 @@
}
from
'
../../common/helpers/dom
'
import
{
easeOutQuart
,
easeOutCubic
}
from
'
../../common/helpers/ease
'
import
{
requestAnimationFrame
,
cancelAnimationFrame
}
from
'
../../common/helpers/raf
'
import
{
getNow
}
from
'
../../common/lang/date
'
const
COMPONENT_NAME
=
'
cube-swipe-item
'
...
...
@@ -117,6 +116,7 @@
delta
+=
this
.
cachedBtns
[
i
].
width
btn
.
style
.
width
=
`
${
width
}
px`
btn
.
style
[
transform
]
=
`translate(
${
translate
}
px)`
btn
.
style
[
transitionDuration
]
=
'
0ms
'
}
},
_isInBtns
(
target
)
{
...
...
@@ -153,27 +153,37 @@
_transitionTime
(
time
=
0
)
{
this
.
scrollerStyle
[
transitionDuration
]
=
`
${
time
}
ms`
},
_startProbe
()
{
cancelAnimationFrame
(
this
.
probeTimer
)
this
.
probeTimer
=
requestAnimationFrame
(
probe
)
let
me
=
this
function
probe
()
{
let
pos
=
me
.
_getComputedPositionX
()
me
.
$emit
(
EVENT_SCROLL
,
pos
)
if
(
!
me
.
isInTransition
)
{
return
}
me
.
probeTimer
=
requestAnimationFrame
(
probe
)
}
},
_getComputedPositionX
()
{
let
matrix
=
window
.
getComputedStyle
(
this
.
$refs
.
swipeItem
,
null
)
matrix
=
matrix
[
transform
].
split
(
'
)
'
)[
0
].
split
(
'
,
'
)
let
x
=
+
(
matrix
[
12
]
||
matrix
[
4
])
return
x
},
_translateBtns
(
time
,
easing
,
extend
)
{
/* istanbul ignore if */
if
(
this
.
btns
.
length
===
0
)
{
return
}
const
len
=
this
.
$refs
.
btns
.
length
let
delta
=
0
let
translate
=
0
for
(
let
i
=
0
;
i
<
len
;
i
++
)
{
const
btn
=
this
.
$refs
.
btns
[
i
]
if
(
this
.
state
===
STATE_GROW
)
{
translate
=
delta
}
else
{
translate
=
0
}
delta
+=
this
.
cachedBtns
[
i
].
width
btn
.
style
[
transform
]
=
`translate(
${
translate
}
px,0) translateZ(0)`
btn
.
style
[
transitionProperty
]
=
'
all
'
btn
.
style
[
transitionTimingFunction
]
=
easing
btn
.
style
[
transitionDuration
]
=
`
${
time
}
ms`
if
(
extend
)
{
btn
.
style
.
width
=
`
${
this
.
cachedBtns
[
i
].
width
}
px`
}
}
},
refresh
()
{
if
(
this
.
btns
.
length
>
0
)
{
this
.
_initCachedBtns
()
...
...
@@ -182,13 +192,19 @@
this
.
endTime
=
0
},
shrink
()
{
this
.
stop
()
this
.
state
=
STATE_SHRINK
this
.
scrollTo
(
0
,
easingTime
,
easeOutQuart
)
this
.
$nextTick
(()
=>
{
this
.
scrollTo
(
0
,
easingTime
,
easeOutQuart
)
this
.
_translateBtns
(
easingTime
,
easeOutQuart
)
})
},
grow
()
{
this
.
state
=
STATE_GROW
let
easing
=
this
.
x
<
this
.
maxScrollX
?
easeOutCubic
:
easeOutCubic
const
extend
=
this
.
x
<
this
.
maxScrollX
let
easing
=
easeOutCubic
this
.
scrollTo
(
this
.
maxScrollX
,
easingTime
,
easing
)
this
.
_translateBtns
(
easingTime
,
easing
,
extend
)
},
scrollTo
(
x
,
time
,
easing
)
{
this
.
_transitionProperty
()
...
...
@@ -197,7 +213,6 @@
this
.
_translate
(
x
,
true
)
if
(
time
)
{
this
.
isInTransition
=
true
this
.
_startProbe
()
}
},
genBtnStyl
(
btn
)
{
...
...
@@ -217,6 +232,7 @@
this
.
isInTransition
=
false
let
x
=
this
.
state
===
STATE_SHRINK
?
0
:
this
.
_getComputedPositionX
()
this
.
_translate
(
x
)
this
.
$emit
(
EVENT_SCROLL
,
this
.
x
)
}
},
onTouchStart
(
e
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录