Js scrollIntoView无法将元素滚动到滚动视图的确切顶部

时间:2019-07-04 02:42:20

标签: javascript vue.js

我将Vue用作项目的框架。

js:

let captureElement = document.getElementById('tag' + (index - 1));
if (captureElement) {
    captureElement.parentNode.scrollIntoView({behavior:"smooth",block: "start", inline: "nearest"});
}

html:

<div v-for="(item,index) in data">
    <p class="tag" :id="`tag${index}`">{{item.catagory}}</p>
    <swipeout v-for="(item2,index2) in item.list" :key="`item${index2}`">
         //some code
    </swipeout>
</div>
  

代码的产生方式:

captureElement是p.tag captureElement.parentNode在div之外 scrollIntoView的选项为{behavior:"smooth",block: "start", inline: "nearest"}

  

我期望的是:

我希望p.tag会滚动到其最上方的视图中。

  

实际情况:

当我滚动到p.tag#tag2p.tag#tag2上方的p.tag#tag1上方有一个很小的间隙,其高度可能是1px。 请参阅以下屏幕截图: enter image description here

1 个答案:

答案 0 :(得分:0)

  

该元素可能未完全滚动到顶部或底部   取决于其他元素的布局。

MDN

也许这是一个死胡同...