使用原生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相关推荐

  1. vue制作顶部栏组件

    **制作顶部标题栏 ** 1.创建Detail标题栏显示页面 <template><div><detail-nav-bar></detail-nav-bar& ...

  2. vue 封装返回顶部组件

    我的环境是vue+vant+ts, 相信大家应该知道怎么改成vue+js的写法 先看效果图: HTML: <template><!-- 返回顶部组件 2020-02-17 Walke ...

  3. 手机端html返回顶部,vue实现移动端返回顶部

    本文实例为大家分享了vue实现移动端返回顶部的具体代码,供大家参考,具体内容如下 HTML: 1 ▲ JS: export default { data() { return { isShow: tr ...

  4. vue3返回顶部组件(丝滑)

    vue3返回顶部组件(丝滑) 我这里使用了阿里的字体图标,需要自己配置一下 <template><div v-if="btnShow" style="p ...

  5. vue 移动端顶部导航组件

    废话不多说,下面是我自己写的vue移动端顶部导航组件给大家分享一下 ,动态绑定背景颜色,字体颜色,以及回退图标.需要的直接拿去放项目里用吧- 示例图: HTML <template>< ...

  6. 前端 vue 自定义导航栏组件高度及返回箭头 自定义 tabbar 图标

    前端vue自定义导航栏组件高度及返回箭头 自定义tabbar图标, 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12986 喜 ...

  7. Vue 简单的记录div滚动条的位置,并返回顶部

    效果图: .vue 在最外层的div:<div @scroll="divScroll" >引入返回顶部的图标:<img class="imgTop&qu ...

  8. vite + vue3 + 封装axios + 封装loading + 封装返回顶部

    前言 ​前期回顾    ​ vite + vue3 + ts配置<企业级项目>二次封装el-table.分页_0.活在风浪里的博客-CSDN博客封装的功能有哪些?分页.表格排序.文字居中. ...

  9. vue刘海屏兼容组件

    vue 刘海屏兼容组件 /* 无返回按钮的标头 */ <template><div v-if="GLOBAL.evnType === GLOBAL.ENV_TYPES.AP ...

最新文章

  1. linux启动时间极限优化,Linux启动时间的极限优化
  2. 【Verilog HDL】设计硬件电路时,如何避免生成锁存器?
  3. 计算机专业毕业文案,我们毕业啦!|今天,没有文案
  4. Feature Pyramid Networks for Object Detection 总结
  5. 阿里开源软件替换指南
  6. Android 自定义dialog
  7. 若川诚邀你加源码共读群,每周一起学源码
  8. dataframe指定位置插入行
  9. 【Electron-Vue】构建桌面应用(42)- 企业微信扫码登录
  10. ps滤镜下载大全-PSCC 64位滤镜收集
  11. Readyboost功能
  12. Scala的虚无与飘渺
  13. python 空集_Python——集(set)
  14. 按照计算机名共享打印机,添加网络共享打印机
  15. vue移动端富文本编辑器vue-html5-editor
  16. 用 python 脚本,把当前目录及子目录下的 wav 音频文件转换为 flac 格式
  17. Template for Publisher and Subscriber
  18. 计算机与MCU通信及MAX232、CH340T与PL2303的区别
  19. 【职来职往经典语录】
  20. HTML5期末大作业:美食网页制作——餐饮料里(12页) HTML+CSS+JavaScript 大学生简单个人静态HTML网页设计作品 DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载

热门文章

  1. Gerber文件解析软件介绍(RS-274G-code)
  2. PopStar(消灭星星)游戏源代码下载、分析及跨平台移植—第一篇(界面)
  3. 修改VMware虚拟机网卡MAC地址的方法总结
  4. Python爬虫怎么挣钱?解析Python爬虫赚钱方式
  5. 2023 新年时钟倒计时html源码 修改版
  6. php实现教学卡片,CSS3实现卡片效果
  7. 用python自动化定时发送邮件(普通文本,html,图片,附件等)_亲测有效
  8. 神经网络算法基本介绍,简单神经网络算法原理
  9. sql查询各科成绩前三名----详述过程,思路清晰不烧脑!
  10. 原神人物语音包AI合成