Vue项目实现滚动条顺畅滑动及对之前锚点监听的优化(Pc端)

本文介绍了如何在Vue项目中实现平滑滚动和优化锚点监听,特别是针对PC端的情况。通过封装scroll.js并修改其源码,适配父子级div的滚动需求,解决了滚动条最大高度可能小于锚点offsetTop的问题。文中详细讲解了修改的代码逻辑,包括在父组件和子组件之间的交互,以及如何区分点击滚动和滚动条滚动。最终实现了相比之前更顺畅的滚动体验。
摘要由CSDN通过智能技术生成

首先看一下效果 ,返回顶点效果:

这里其实就是封装了一个scroll.js

  • 过渡用的是requestAnimationFrame,这货只支持IE10+,所以必须做兼容
  • 滚动视图是window.pageYOffset,这货支持IE9+;

这里只是转载了他人写好封装完毕的代码,原文链接:https://blog.csdn.net/crper/article/details/76038932?utm_source=tuicool&utm_medium=referral

现在讲一下之前做的锚点平滑滚动:

首先我拿到这一块代码的时候,看了一下源码,发现好像不适合我的锚点

因为这代码的是拿取浏览器上滚动条距离顶端的距离,就是document对象,但是我这边完全用不了,我的只是父子级div滚动,但是看了代码之后,我可以将scroll.js提取出来,修改里面的源码,将其当做一个vue methods中的一个普通方法来做,优化之前一小段一小段的跳来实现假平滑移动的效果

情况和我之前的https://mp.csdn.net/postedit/80397826 这篇布局是一模一的,只是子组件页面(days-detail.vue)实现(代码和之前的一样,我这边简单放几个关键代码)

   <el-steps
      direction="vertical"
      space="2.5rem"
      finish-status="wait"
      :active="activeStep">
      <el-step
        v-for="(item, index) in steps"
        :key="index"
        icon=" "
        :title="item.title"
        @click.native="jump(index)">
        <dl-icon slot="icon" :type="index === 0 ?  'yinzhang' : 'shixinyuan'"
                 :color="index === 0 ?  '#383636' : '#BEC0C2'" size="0.5"></dl-icon>
      </el-step>
    </el-steps>
    //  js  
  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值