Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在粘性元素上使用scrollIntoView 我试图滚动一个位置粘到页面中心的元素。_Javascript_Css_Sticky_Js Scrollintoview - Fatal编程技术网

Javascript 在粘性元素上使用scrollIntoView 我试图滚动一个位置粘到页面中心的元素。

Javascript 在粘性元素上使用scrollIntoView 我试图滚动一个位置粘到页面中心的元素。,javascript,css,sticky,js-scrollintoview,Javascript,Css,Sticky,Js Scrollintoview,这意味着它在文档流中的非固定位置应该位于视图的中心 //之所以出现此代码段,是因为堆栈溢出不允许我在没有它的情况下发布codepen链接。 //在堆栈溢出代码段中使用scrollInToView无法正常工作,只会使演示此问题变得更加混乱 //伪码 buttonElement.onClick(e=> stickyElement.ScrollingToView(选项) ) 标题中有导航链接,可以使用scrollIntoView滚动到页面的该部分 第三部分是位置粘性 如果它当前在文档流中(如pos

这意味着它在文档流中的非固定位置应该位于视图的中心

//之所以出现此代码段,是因为堆栈溢出不允许我在没有它的情况下发布codepen链接。
//在堆栈溢出代码段中使用scrollInToView无法正常工作,只会使演示此问题变得更加混乱
//伪码
buttonElement.onClick(e=>
stickyElement.ScrollingToView(选项)
)
标题中有导航链接,可以使用scrollIntoView滚动到页面的该部分

第三部分是位置粘性

如果它当前在文档流中(如position static/Relative),它将正常工作

如果它当前不在文档流中(如position absolute/fixed),它的行为将类似于此,并且不会一直滚动到它。(如左下角的页面标题按钮。)

scrollInToView是否应该对粘性元素起作用,因为它们有时会出现在文档流中


如何解决这个问题?

当然,scrollInToView必须处理粘性元素。因为它的行为部分类似于relative(因为position对scrollInToView js有相对响应),并且总是在文档流中

我发现的解决方法是在sticky元素的正上方添加一个id相同的不可见div元素,并从同一个元素中删除id属性,或者按如下所示添加其他值:

<div id="3" style="height: 0px; opacity: 0;">
</div>
<button id="10" class="sticky">
3.
Lorem Ipsum is simply dummy text of th
</button>

3.
Lorem Ipsum仅仅是th的虚拟文本
等等