使用scrollTo/scrollTop让页面元素滚动到指定位置, 并设置滚动动画

这篇具有很好参考价值的文章主要介绍了使用scrollTo/scrollTop让页面元素滚动到指定位置, 并设置滚动动画。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

当容器有滚动条时,有时需要点击 试图节点 将页面滚动到指定元素位置


什么是滚动距离

比如父元素设置了overflow: hidden; ,当元素里的内容超过元素本身的高度时, 就会出现滚动条, 那么鼠标滑动的距离就是其滚动距离.

使用scrollTo/scrollTop让页面元素滚动到指定位置, 并设置滚动动画

读取滚动距离

<head>
    <title>test</title>
    <style>
        ul {
            width: 200px;
            height: 200px;
            background-color: #eee;
            overflow: auto;
            transition: all 1s linear;
            margin-top: 200px;
        }
        li {
            height: 300px; 
            background-color: skyblue;
            list-style-type:none;
        }
    </style>
</head>
-------------------------------------↓ 结构 ↓-------------------------------------------------------
<ul id="outer">
    <li id="insider">
		1111111111111111
		2222222222222222
		3333333333333333
		4444444444444444
		5555555555555555
		6666666666666666
    </li>
</ul>

<button onclick="set()">set</button>
--------------------------------------↓ js ↓-----------------------------------------------------
const outEle = document.getElementById('outer');
const insideEle = document.getElementById('insider');

//onscroll事件的处理函数
 outEle.onscroll = function readScrollTop() {
     console.log('scrollTop:', outEle.scrollTop); // 可以清楚的看到滚动的距离
 }

如何设置滚动

scrollTop属性

scrollTop就是指 “元素中的内容” 超出 “元素上边界” 的那部分的高度。
直接给父元素的scrollTop赋值:

function set() {
    outEle.scrollTop = 100;
}

这种方法比较直接, 但是因为是直接设置的dom元素的js属性 而不是css属性, 所以想通过这种方法设置过渡动画是没有效果的(transition: all 1s linear; 无效)

补充: 有时会出现设置scrollTop无效 一直为0的情况, 出现这种现象的原因之一就是内容已经到底了, 在滑滑不上去了…


scrollTo方法

scrollTo()方法可以使界面滚动到给定元素的指定坐标位置。
有两种用法:

方法一: element.scrollTo(x-coord, y-coord)

  • x-coord 是期望滚动到位置水平轴上距元素左上角的像素。
  • y-coord 是期望滚动到位置竖直轴上距元素左上角的像素。

方法二: element.scrollTo(options)

  • options是一个对象:
  • left (number类型)
  • top(number类型)
  • behavior: ‘smooth’ (平滑过渡效果)

    参数如下:
    "auto"默认
    "instant"直接滚动
    "smooth"; 平滑滚动

scrollTo()的两种方式我们都试试:

function set() {
	// 方式一:
    outEle.scrollTo(0, 100)

	// 方式二:
	outEle.scrollTo({top: 100, behavior: 'smooth'})
}

总结

最后, 大家会发现 都产生了效果, 但是方式一没有过度效果, 方式二产生了过度效果, 所以如果对过渡动画有要求的话, 推荐使用第二种方式~!

当然, 需要注意的是: options这种对象的写法 有兼容性方便的限制:
使用scrollTo/scrollTop让页面元素滚动到指定位置, 并设置滚动动画文章来源地址https://www.toymoban.com/news/detail-427028.html

到了这里,关于使用scrollTo/scrollTop让页面元素滚动到指定位置, 并设置滚动动画的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue 两步实现点击导航栏,滚动页面到指定位置的功能

    当编写好html部分后,我们创建一个可以获取当前滚轮位置的方法handleScroll(),并在mounted钩子函数中添加该方法的监听事件 创建好监听事件后,我们手动滑动网页右侧滚动条到各版块位置,并打印当前板块的滚轮高度 1、具体思路   ① 获取到当前滚轮位置后,计算其位置与

    2024年02月08日
    浏览(37)
  • vue页面设置滚动失败的解决方案(scrollTop一直为0)

    背景 希望页面能跳转到 某一位置用到了scrollTop属性。可是发现给某个div设置该属性后,一致为0。找了很多方案,但不都适合自己,或者说不知道是否适合。 怎么看我这个方法适不适合你 你可以尝试打印滚动条的位置,页面滚动后,再次打印滚动条的位置,如果一直为0的话,那我

    2024年02月04日
    浏览(71)
  • uniapp设置滚动条滚动到指定位置

    场景:左侧菜单栏,每次切换时,需要右侧商品展示区保持滚动条及页面在最顶部   scrollToTop在0,1之间切换,通过1px的差别使页面可以正常渲染 1) 使用 uni.pageScrollTo 方法,属于页面级别滚动。 如果传入 scrollTop 不起效,应该是布局的问题, 它是页面级的滚动: 所有的

    2024年02月09日
    浏览(80)
  • 【Flutter】Flutter 滚动到指定位置

    在 Flutter 开发中,我们经常会遇到需要滚动到列表的指定位置的需求,例如,用户可能希望点击一个按钮后,页面能够自动滚动到某个特定的位置。这种需求在实际开发中非常常见,但是对于初学者来说,可能会感到有些困惑。本文将详细介绍如何在 Flutter 中实现滚动到指定

    2024年02月08日
    浏览(42)
  • unity scrollview滚动到指定的位置

    方法一:通过下标 方法二:原文1 原文2 方法一没测试 这里给方法二增加注释理解 图1 图2 图3 图4

    2024年01月20日
    浏览(45)
  • 微信小程序 scrollview 滚动到指定位置

    在微信小程序中,实现 ScrollView 滚动到指定位置有多种方法,下面将介绍三种主要的实现方式。 通过设置 scroll-view 组件的 scroll-top 属性,我们可以实现滚动到指定位置。以下是具体实现方式: 滚动逻辑: 在上述代码中,scroll-top是一个动态数据,通过手动改变scroll-top的值来

    2024年02月04日
    浏览(38)
  • 微信小程序 通过 pageScrollTo 滚动到界面指定位置

    我们可以先创建一个page 注意 一定要在page中使用 因为pageScrollTo控制的是页面滚动 你在组件里用 他就失效了 我们先来看一个案例 wxml 代码如下 wxss 代码如下 js 参考代码如下 关键就在于 我们在页面上写了一个 id为pinglun的元素 然后 调用pageScrollTo 指定选择id为pinglun的元素 当然

    2024年02月03日
    浏览(38)
  • JavaScript中的scrollTop(js中的scrollTop,滚动到顶部,javascript滚动到顶部)

    简述:scrollTop是JavaScript中一个非常有用且重要的方法,它用于获取或设置元素的垂直滚动条位置,实现各种滚动相关的功能,无论是回到顶部、滚动到指定位置还是监听滚动事件,都需要用到scrollTop,在本文中,我们将深入了解scrollTop的用法和实际应用,这是一张scrollTop的关

    2024年02月08日
    浏览(48)
  • uniapp将页面滚动到目标位置

    这里分享其中两种方式,仅供参考~ 方式一:使用 pageScrollTo 方式二:使用 scroll-view 注意: 如果页面需要 下拉刷新 交互,此方式不适合。详情请看

    2024年02月11日
    浏览(84)
  • 小程序<scroll-view>滚动到指定位置/scrollview

    注意里面的 scroll-into-view=“{{scrollId}}” 和 id=“scrollView{{index}}” 属性。 当scrollId和scroll-view 组件中元素的id相同时 界面将自动滚动到此位置

    2024年02月12日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包