2.跳转到指定的位置

跳转到指定的位置

具体的效果

  1. 效果1
    在这里插入图片描述
  2. 效果2
    在这里插入图片描述
    查看相关效果

具体实现

方法一:scrollIntoView

跳转到指定的盒子

var element = document.getElementById("box");

element.scrollIntoView();
element.scrollIntoView(false);
element.scrollIntoView({block: "end"});
element.scrollIntoView({behavior: "smooth", block: "end", inline: "nearest"});

详细说明

缺点

无法跳转到指定的像素位置
当顶部菜单栏是浮动定位,跳转到指定的盒子顶部的时候,菜单会浮于盒子上面,压住盒子的内容

正确的效果
在这里插入图片描述
scrollIntoView实现的效果
在这里插入图片描述

可以将盒子内的内容距离盒子顶部距离 > 菜单栏的高度,这样盒子的内容正常显示

方法二

window.scrollTo({
    top: 指定的高度,
    behavior: "smooth",
});

当上面无效的时候,使用下面的

this.$nextTick(() => {
document.body.scrollTo(x, y) 

});
缺点

IE不兼容、滚动条距离会继承
会出现如图效果

在这里插入图片描述

方法三

scrollBy

  var element = document.getElementById(id).offsetTop
  window.scrollBy(0, element);

缺点:无法设置平滑跳转

方法四

原生js点击平滑滚动到某个元素

function toHeight(id) {
    var timer = null
    var element = document.getElementById(id).offsetTop
    var pageTop = document.documentElement
    timer = setInterval(function () {
      if (pageTop.scrollTop >= element) {
        clearInterval(timer)
        pageTop.scrollTop = element
      } else {
        pageTop.scrollTop += 10;
      }
    }, 20);
  }
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值