Vue3从0到1组件开发-基础组件:BackTop回顶

本文介绍了如何在Vue3中开发基础组件BackTop,用于实现回到顶部的功能。作者分享了组件的结构设计,逻辑实现,特别是利用requestAnimationFrame实现平滑滚动的效果。此外,还提及了组件的适用场景和后续的组件分享计划。
摘要由CSDN通过智能技术生成

基础组件最后一件:Backtop

回到顶部的野望

谈及前端开发中的基础交互,必不可少的一个功能应该就是回到顶部了吧,

但是Backtop回到顶部功能应该也是网页中最不起眼的一个功能了,这句话没争议吧。

在我为数不多的开发经验当中,看过好几款不同的回到顶部,如瞬间回到顶部滚动回顶顶部定时回到顶部这几种算是比较常见的了,其中尤以瞬回,滚回这两种方式最为常见,而定时回顶则相对少一些,实现略微有点复杂,收益也不大,也就是传说中的付出大于回报。

当然这些都是看个人意愿,而在常规的Web项目开发中,回到顶部大概是必不可少的啦,尤其是长页面的项目中。

基础组件这一块也就以这个组件来作为结尾,之后开始下一个分类的组件分享。

画虎先画骨。

这里还是先从结构讲起,回到顶部的结构比较简单,常规布局就可以,主要是通过一个值控制好它的显示隐藏就可以了。

<template lang="pug">
block content
div(
  class="yx-backTop"
  :style="{right: `${right}px`, bottom: `${bottom}px`}"
  @click="toTop"
  v-show="backTop" // 控制是否显示,这里切忌用v-if,属于一个小小小的优化。
)
  slot
    div.yx-backTop-content
      <yx-icons type="backTop" />
</template>

结构比较简单,如果传值就显示传入样式,否则显示一个单纯的图标,默认样式也可以自定义一个啦。

逻辑部分

通过结构部分,就可以很清晰看到接受的传值了,那么这里只讲一下核心的内容,即定时回到顶部的方法。

这个方法并非我自己写的,本来只是想用常规的滚动回顶的,但是思来想去,那样的话这个组件就没什么好些的了。所以经过我多方查阅,来回闹腾,终于在其他的组件库找到了类似的方法,所以这里只是简单的进行一波分析。

代码如下


onMounted(() => {
   
  window.addEventListener('scroll', handleScroll, false)
  window.addEventListener('resize', handleScroll, false)
})

onBeforeUnmount
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值