实现锚点-scroll平滑滚动

a链接锚点定位太生硬?试试自己让滚动条平滑滚动把

  scroll2 =(target)=>{
    console.log('alb')
   console.log('滚动拉')
    target = target?target:'aaa'; //className
    const scrollPart = document.querySelector('.' + target); // 目标节点class
    const top = scrollPart.getBoundingClientRect().top - 60;//设置自己滚动的高度
    const pageY = window.pageYOffset;
    const endPosition = top + pageY;

    const startTime = +new Date();
    const duration = 500; //ms

    function run() {
        const time = +new Date() - startTime;

        window.scrollTo(0, pageY + top * (time / duration));
        run.timer = requestAnimationFrame(run);

        if (time >= duration) {
            window.scrollTo(0, endPosition);
            cancelAnimationFrame(run.timer);
        }
    } 

    requestAnimationFrame(run);
  }
//调用

scroll2('classNameA');

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值