vue返回顶部的组件BackTop
使用原生js进行封装,不依赖任何东西,核心是requestAnimationFrame方法,有对组件进行兼容性处理。
学习了Coderwhy老师在b站Vue2视频如果你不想使用better-scroll,可以去我的 github 查看源码。“HomebackTop分析.md”文件中有详细的解析,如果你不懂欢迎联系我。
<template><div @click="backTopBtn(move)"><slot /></div>
</template><script>
export default {name: "BackTop",props: {//每一帧移动的距离move: {type: Number,default: 300,},},methods: {backTopBtn(move) {clearTimeout(this.timer); cancelAnimationFrame(this.timer);const fn = () => {const scrollY = document.documentElement.scrollTop;if (scrollY > 0) {document.documentElement.scrollTop = scrollY - move;requestAnimationFrame(fn) || setTimeout(fn, 1000/60);} else {cancelAnimationFrame(this.timer) || clearTimeout(this.timer);}};this.timer = requestAnimationFrame(fn) || setTimeout(fn, 1000/60);},},
};
</script>
<style>
</style>
这个组件主要是可以用于移动端的项目,建议放在common文件夹中(公共组件文件夹),他的主要的作用是面对不同的刷新率的手机也可以做到动画不卡顿。
如果不懂requestAnimationFrame()这个api可以看我的这篇文章,代码有不理解的地方欢迎咨询我。
感兴趣还可以关注我的:
cnsd:m0_46217225
掘金:寸头男生
github:Buzz_cut
微信公众号:web_mycode
知乎:寸头男生
我的QQ:2356924146
我会持续的编程干货。
vue返回顶部的组件BackTop相关推荐
- vue制作顶部栏组件
**制作顶部标题栏 ** 1.创建Detail标题栏显示页面 <template><div><detail-nav-bar></detail-nav-bar& ...
- vue 封装返回顶部组件
我的环境是vue+vant+ts, 相信大家应该知道怎么改成vue+js的写法 先看效果图: HTML: <template><!-- 返回顶部组件 2020-02-17 Walke ...
- 手机端html返回顶部,vue实现移动端返回顶部
本文实例为大家分享了vue实现移动端返回顶部的具体代码,供大家参考,具体内容如下 HTML: 1 ▲ JS: export default { data() { return { isShow: tr ...
- vue3返回顶部组件(丝滑)
vue3返回顶部组件(丝滑) 我这里使用了阿里的字体图标,需要自己配置一下 <template><div v-if="btnShow" style="p ...
- vue 移动端顶部导航组件
废话不多说,下面是我自己写的vue移动端顶部导航组件给大家分享一下 ,动态绑定背景颜色,字体颜色,以及回退图标.需要的直接拿去放项目里用吧- 示例图: HTML <template>< ...
- 前端 vue 自定义导航栏组件高度及返回箭头 自定义 tabbar 图标
前端vue自定义导航栏组件高度及返回箭头 自定义tabbar图标, 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12986 喜 ...
- Vue 简单的记录div滚动条的位置,并返回顶部
效果图: .vue 在最外层的div:<div @scroll="divScroll" >引入返回顶部的图标:<img class="imgTop&qu ...
- vite + vue3 + 封装axios + 封装loading + 封装返回顶部
前言 前期回顾 vite + vue3 + ts配置<企业级项目>二次封装el-table.分页_0.活在风浪里的博客-CSDN博客封装的功能有哪些?分页.表格排序.文字居中. ...
- vue刘海屏兼容组件
vue 刘海屏兼容组件 /* 无返回按钮的标头 */ <template><div v-if="GLOBAL.evnType === GLOBAL.ENV_TYPES.AP ...
最新文章
- linux启动时间极限优化,Linux启动时间的极限优化
- 【Verilog HDL】设计硬件电路时,如何避免生成锁存器?
- 计算机专业毕业文案,我们毕业啦!|今天,没有文案
- Feature Pyramid Networks for Object Detection 总结
- 阿里开源软件替换指南
- Android 自定义dialog
- 若川诚邀你加源码共读群,每周一起学源码
- dataframe指定位置插入行
- 【Electron-Vue】构建桌面应用(42)- 企业微信扫码登录
- ps滤镜下载大全-PSCC 64位滤镜收集
- Readyboost功能
- Scala的虚无与飘渺
- python 空集_Python——集(set)
- 按照计算机名共享打印机,添加网络共享打印机
- vue移动端富文本编辑器vue-html5-editor
- 用 python 脚本,把当前目录及子目录下的 wav 音频文件转换为 flac 格式
- Template for Publisher and Subscriber
- 计算机与MCU通信及MAX232、CH340T与PL2303的区别
- 【职来职往经典语录】
- HTML5期末大作业:美食网页制作——餐饮料里(12页) HTML+CSS+JavaScript 大学生简单个人静态HTML网页设计作品 DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载
热门文章
- Gerber文件解析软件介绍(RS-274G-code)
- PopStar(消灭星星)游戏源代码下载、分析及跨平台移植—第一篇(界面)
- 修改VMware虚拟机网卡MAC地址的方法总结
- Python爬虫怎么挣钱?解析Python爬虫赚钱方式
- 2023 新年时钟倒计时html源码 修改版
- php实现教学卡片,CSS3实现卡片效果
- 用python自动化定时发送邮件(普通文本,html,图片,附件等)_亲测有效
- 神经网络算法基本介绍,简单神经网络算法原理
- sql查询各科成绩前三名----详述过程,思路清晰不烧脑!
- 原神人物语音包AI合成