Vue封装回到顶部公共组件(动画过渡)-案例
演示
Top.vue
<template>
<div class="goTop" v-show="goTopShow" @click="goTop">
<!-- 我使用的是图,可以使用文字代替,自定义样式 -->
<img src="./assets/images/btn/top.png" alt="Top">
</div>
</template>
<script>
export default {
name: "goTop",
data() {
return {
scrollTop: "",
goTopShow: false,
};
},
watch: {
scrollTop(val) {
if (this.scrollTop > 500) {
this.goTopShow = true;
} else {
this.goTopShow = false;
}
},
},
methods: {
handleScroll() {
this.scrollTop =
window.pageYOffset ||
document.documentElement.scrollTop ||
document.body.scrollTop;
if (this.scrollTop > 500) {
this.goTopShow = true;
}
},
goTop() {
let timer = null,
_that = this;
cancelAnimationFrame(timer);
timer = requestAnimationFrame(function fn() {
if (_that.scrollTop > 0) {
_that.scrollTop -= 250;
document.body.scrollTop = document.documentElement.scrollTop =
_that.scrollTop;
timer = requestAnimationFrame(fn);
} else {
cancelAnimationFrame(timer);
_that.goTopShow = false;
}
});
},
},
mounted() {
window.addEventListener("scroll", this.handleScroll);
},
destroyed() {
window.removeEventListener("scroll", this.handleScroll);
},
};
</script>
<style lang="scss" scoped>
.goTop {
position: fixed;
right: 40px;
bottom: 60px;
cursor: pointer;
img{
width: 60px;
height: 60px;
}
}
</style>
使用
//引入组件
import Top from "@/components/common/Top";
//注册组件
export default {
components: {
Top,
},
}
//页面使用组件
<template>
<div>
<Top />
</div>
</template>
本文来自博客园,作者:JackieDYH,转载请注明原文链接:https://www.cnblogs.com/JackieDYH/p/17634200.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现