平滑滚动

使界面平滑滚动到给定元素的指定坐标位置,可以使用scrollTo方法

语法

element.scrollTo(x-coord, y-coord)
// OR
element.scrollTo(options)

element指的是DOM节点元素,可以是windows,也可以通过document.getElementByxxx获取的节点

  • 传入两个参数
参数x-coordy-coord
含义沿x轴滚动的距离沿y轴滚动的距离
  • 传入options参数

传入的options参数是一个ScrollToOptions对象,ScrollToOptions有三个属性,分别为top, left, behavior

属性topleftbehavior
含义沿y轴滚动的距离沿x轴滚动的距离滚动的方式,平滑滚动或者立即滚动到指定位置

ScrollToOptionsbehavior有三个值,分别为smooth, auto, instant

属性smoothautoinstant
含义平滑滚动立即跳动到指定位置立即跳动到指定位置,同auto

案例

  • element.scrollTo(x-coord, y-coord)的使用

这里的ELement可以是Windows

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .div {
            width: 1600px;
            height: 2000px;
            background-color: #8aff1c;
        }
    </style>
</head>
<body>
<button id="btn">滚动</button>
<div class="div">
    <p>x-coord 是期望滚动到位置水平轴上距元素左上角的像素。
        y-coord 是期望滚动到位置竖直轴上距元素左上角的像素。</p>
    <p>x-coord 是期望滚动到位置水平轴上距元素左上角的像素。
        y-coord 是期望滚动到位置竖直轴上距元素左上角的像素。</p>
    <p>x-coord 是期望滚动到位置水平轴上距元素左上角的像素。
        y-coord 是期望滚动到位置竖直轴上距元素左上角的像素。</p>
    <p>x-coord 是期望滚动到位置水平轴上距元素左上角的像素。
        y-coord 是期望滚动到位置竖直轴上距元素左上角的像素。</p>
    <p>x-coord 是期望滚动到位置水平轴上距元素左上角的像素。
        y-coord 是期望滚动到位置竖直轴上距元素左上角的像素。</p>
</div>
<script>
let button = document.getElementById(`btn`);
button.addEventListener('click', () => {
    window.scrollTo(50, 50)
})
</script>
</body>
</html>
  • element.scrollTo(options)的使用
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .div {
            width: 300px;
            height: 300px;
            background-color: #8aff1c;
            overflow: auto;
        }
    </style>
</head>
<body>
<button id="btn">滚动</button>
<div class="div">
    <p>options 是一个ScrollToOptions对象。</p>
    <p>options 是一个ScrollToOptions对象。</p>
    <p>options 是一个ScrollToOptions对象。</p>
    <p>options 是一个ScrollToOptions对象。</p>
    <p>options 是一个ScrollToOptions对象。</p>
    <p>options 是一个ScrollToOptions对象。</p>
    <p>options 是一个ScrollToOptions对象。</p>
    <p>options 是一个ScrollToOptions对象。</p>
    <p>options 是一个ScrollToOptions对象。</p>
    <p>options 是一个ScrollToOptions对象。</p>
    <p>options 是一个ScrollToOptions对象。</p>
</div>
<script>
const button = document.getElementById(`btn`);
button.addEventListener('click', () => {
    const div = document.getElementsByClassName('div')[0]
    div.scrollTo({
        top: 150,
        behavior: 'smooth'
    })
})
</script>
</body>
</html>

参考文章:

Element.scrollTo()

ScrollToOptions

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值