scrollIntoView可以设置它的作用域吗?

我想要用这个方法对某一个区域进行设置,因为我在document里面又单独做了一个域并且设置了滚动条,但是使用这个方法的话会导致document以及我自己设置的滚动条一起滚动到对应的id,有没有牛人可以解答一下怎么设置这个方法的作用域或者禁止document的滚动条滚动,谢谢了!

            document.querySelector('#'+aArray[0]).scrollIntoView({
                behavior: "smooth",
                block: "start"
            })

用容器.scrollTop,要有动画效果可以用jquery anmate属性来实现,示例如下

img


<div style="height:700px">1111</div>
<div style="width:100%;height:300px;overflow:auto">
    <div style="height:700px">1111</div>
    <div style="height:700px">222</div>
    <div style="height:700px" id="dv">333</div>
</div>
<input type="button" value="scrollIntoView" onclick="scrollIntoView1()" /> <input type="button" value="jQuery.animate" onclick="jqAnimate()" />
<div style="height:700px">bbbb</div>

<script src="https://g.csdnimg.cn/??lib/jquery/1.12.4/jquery.min.js"></script>
<script>
    function scrollIntoView1() {
        document.querySelector('#dv').scrollIntoView({
            behavior: "smooth",
            block: "start"
        })
    }
    function jqAnimate() {
        var el = document.querySelector('#dv')
        $(el).parent().animate({scrollTop:el.offsetTop-el.offsetHeight-20},500)
    }
</script>

有帮助麻烦点下【采纳该答案】,谢谢~~

对于你这个问题可以参考如下链接:

如果对你有帮助,可以给我个采纳吗,谢谢!!

1. 在JS高级程序设计中查找到一个函数scrollIntoViewIfNeeded,
是滚动的高级扩展,似乎可以满足上述需求,
但现在的兼容性不太好,书中讲到Safari/Chrome/Opera实现了这个方法,我这边测试目前firefox是不支持的

2. 这里还有一种想法:

  • 在执行这里的滚动事件前先将您定义的这个域area的scrollTop做一个记录,
  • 滚动完成后立即执行area.scrollTo(0, parent.scrollTop)将其位置进行恢复

我这里测试出来的效果是和scrollIntoViewIfNeeded相差无几的,但数据量不够大,我不清楚这种做法是否能够满足需要。

如果这些意见对你来说有所帮助的话,还请给一个采纳,多谢啦