Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
圆滚滚核心
vue-element-admin
提交
cbc5c182
V
vue-element-admin
项目概览
圆滚滚核心
/
vue-element-admin
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vue-element-admin
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
cbc5c182
编写于
7月 17, 2017
作者:
D
dongsuo
提交者:
花裤衩
7月 17, 2017
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
'代码格式化'
上级
5069a4d1
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
101 addition
and
105 deletion
+101
-105
src/components/BackToTop/index.vue
src/components/BackToTop/index.vue
+83
-84
src/views/components/backToTop.vue
src/views/components/backToTop.vue
+18
-21
未找到文件。
src/components/BackToTop/index.vue
浏览文件 @
cbc5c182
...
...
@@ -10,102 +10,101 @@
</div>
</transition>
</
template
>
<
script
>
export
default
{
name
:
'
BackToTop
'
,
props
:
{
visibilityHeight
:
{
type
:
Number
,
default
:
400
},
backPosition
:
{
type
:
Number
,
default
:
0
export
default
{
name
:
'
BackToTop
'
,
props
:
{
visibilityHeight
:
{
type
:
Number
,
default
:
400
},
backPosition
:
{
type
:
Number
,
default
:
0
},
customStyle
:
{
type
:
Object
,
default
:
{
right
:
'
50px
'
,
bottom
:
'
50px
'
,
width
:
'
40px
'
,
height
:
'
40px
'
,
'
border-radius
'
:
'
4px
'
,
'
line-height
'
:
'
45px
'
,
background
:
'
#e7eaf1
'
}
},
transitionName
:
{
type
:
String
,
default
:
'
fade
'
}
},
customStyle
:
{
type
:
Object
,
default
:
{
right
:
'
50px
'
,
bottom
:
'
50px
'
,
width
:
'
40px
'
,
height
:
'
40px
'
,
'
border-radius
'
:
'
4px
'
,
'
line-height
'
:
'
40px
'
,
background
:
'
#e7eaf1
'
data
()
{
return
{
visible
:
false
,
interval
:
null
}
},
transitionName
:
{
type
:
String
,
default
:
'
fade
'
}
},
data
()
{
return
{
visible
:
false
,
interval
:
null
}
},
mounted
()
{
window
.
addEventListener
(
'
scroll
'
,
this
.
handleScroll
);
},
beforeDestroy
()
{
window
.
removeEventListener
(
'
scroll
'
,
this
.
handleScroll
);
if
(
this
.
interval
)
{
clearInterval
(
this
.
interval
);
}
},
methods
:
{
handleScroll
()
{
this
.
visible
=
window
.
pageYOffset
>
this
.
visibilityHeight
;
mounted
()
{
window
.
addEventListener
(
'
scroll
'
,
this
.
handleScroll
);
},
backToTop
()
{
const
start
=
window
.
pageYOffset
;
let
i
=
0
;
this
.
interval
=
setInterval
(()
=>
{
const
next
=
Math
.
floor
(
this
.
easeInOutQuad
(
10
*
i
,
start
,
-
start
,
500
));
if
(
next
<=
this
.
backPosition
)
{
window
.
scrollTo
(
0
,
this
.
backPosition
);
clearInterval
(
this
.
interval
)
}
else
{
window
.
scrollTo
(
0
,
next
);
}
i
++
;
},
16.7
)
beforeDestroy
()
{
window
.
removeEventListener
(
'
scroll
'
,
this
.
handleScroll
);
if
(
this
.
interval
)
{
clearInterval
(
this
.
interval
);
}
},
easeInOutQuad
(
t
,
b
,
c
,
d
)
{
if
((
t
/=
d
/
2
)
<
1
)
return
c
/
2
*
t
*
t
+
b
;
return
-
c
/
2
*
(
--
t
*
(
t
-
2
)
-
1
)
+
b
;
methods
:
{
handleScroll
()
{
this
.
visible
=
window
.
pageYOffset
>
this
.
visibilityHeight
;
},
backToTop
()
{
const
start
=
window
.
pageYOffset
;
let
i
=
0
;
this
.
interval
=
setInterval
(()
=>
{
const
next
=
Math
.
floor
(
this
.
easeInOutQuad
(
10
*
i
,
start
,
-
start
,
500
));
if
(
next
<=
this
.
backPosition
)
{
window
.
scrollTo
(
0
,
this
.
backPosition
);
clearInterval
(
this
.
interval
)
}
else
{
window
.
scrollTo
(
0
,
next
);
}
i
++
;
},
16.7
)
},
easeInOutQuad
(
t
,
b
,
c
,
d
)
{
if
((
t
/=
d
/
2
)
<
1
)
return
c
/
2
*
t
*
t
+
b
;
return
-
c
/
2
*
(
--
t
*
(
t
-
2
)
-
1
)
+
b
;
}
}
}
}
</
script
>
<
style
scoped
>
.back-to-top
{
position
:
fixed
;
display
:
inline-block
;
text-align
:
center
;
cursor
:
pointer
;
}
.back-to-top
{
position
:
fixed
;
display
:
inline-block
;
text-align
:
center
;
cursor
:
pointer
;
}
.back-to-top
:hover
{
background
:
#d5dbe7
;
}
.back-to-top
:hover
{
background
:
#d5dbe7
;
}
.fade-enter-active
,
.fade-leave-active
{
transition
:
opacity
.5s
;
}
.fade-enter-active
,
.fade-leave-active
{
transition
:
opacity
.5s
;
}
.fade-enter
,
.fade-leave-to
{
opacity
:
0
}
.fade-enter
,
.fade-leave-to
{
opacity
:
0
}
.back-to-top
.Icon
{
fill
:
#9aaabf
;
background
:
none
;
}
.back-to-top
.Icon
{
fill
:
#9aaabf
;
background
:
none
;
}
</
style
>
src/views/components/backToTop.vue
浏览文件 @
cbc5c182
<
template
>
<div
class=
"components-container"
>
<code>
页面滚动到指定位置会在右下角出现返回顶部按钮
</code>
<code>
可自定义按钮的样式、show/hide临界点、返回的位置
如需文字提示,可在外部使用Element的el-tooltip元素
</code>
<code>
可自定义按钮的样式、show/hide临界点、返回的位置 如需文字提示,可在外部使用Element的el-tooltip元素
</code>
<div>
我是占位
</div>
<div>
我是占位
</div>
<div>
我是占位
</div>
...
...
@@ -130,29 +129,27 @@
<!--可自定义按钮的样式、show/hide临界点、返回的位置 -->
<!--如需文字提示,可在外部添加element的
<el-tooltip></el-tooltip>
元素 -->
<el-tooltip
placement=
"top"
content=
"文字提示"
>
<back-to-top
transitionName=
"fade"
:customStyle=
"myBackToTopStyle"
:visibilityHeight=
"300"
:backPosition=
"50"
></back-to-top>
<back-to-top
transitionName=
"fade"
:customStyle=
"myBackToTopStyle"
:visibilityHeight=
"300"
:backPosition=
"50"
></back-to-top>
</el-tooltip>
</div>
</
template
>
<
script
>
import
BackToTop
from
'
components/BackToTop
'
;
export
default
{
components
:
{
BackToTop
},
data
()
{
return
{
myBackToTopStyle
:
{
right
:
'
50px
'
,
bottom
:
'
50px
'
,
width
:
'
40px
'
,
height
:
'
40px
'
,
'
border-radius
'
:
'
4px
'
,
'
line-height
'
:
'
40px
'
,
// 请保持与高度一致以垂直居中
background
:
'
#e7eaf1
'
// 按钮的背景颜色
import
BackToTop
from
'
components/BackToTop
'
;
export
default
{
components
:
{
BackToTop
},
data
()
{
return
{
myBackToTopStyle
:
{
right
:
'
50px
'
,
bottom
:
'
50px
'
,
width
:
'
40px
'
,
height
:
'
40px
'
,
'
border-radius
'
:
'
4px
'
,
'
line-height
'
:
'
45px
'
,
// 请保持与高度一致以垂直居中
background
:
'
#e7eaf1
'
// 按钮的背景颜色
}
}
}
}
}
</
script
>
<
style
scoped
>
</
style
>
</
script
>
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录