我正在使用Polymer项目,并且我试图使用javascript滚动到页面上的元素。
我试图在使用window.scrollTo(x,y)
的网页上致电core-scroll-header-panel
,但在尝试执行此操作时只需获取undefined
。
这是一个显示问题的plunker。点击CLICK ME链接尝试滚动到100,0。你会发现这并没有发生。
如果您注释掉<core-scroll-header-panel>
行,那么您会看到点击相同的链接会向下滚动您的页面。这是相关的plunker。
我知道我可以使用document.getElementById('some-element').scrollIntoView()
,但这并不能帮助我实现我想要实现的目标,即动画向下滚动页面到元素。我也知道window.scrollTo()
不会被动画化,但我可以使用该调用制作我自己的动画滚动方法。
关于为什么会发生这种情况的任何想法,以及我如何解决这个问题以获得理想的行为? jQuery不是一个选项。
答案 0 :(得分:0)
这个问题是安德烈亚斯在评论中提到的。
滚动没有绑定到窗口,但被绑定到阴影dom中的一个组件。
在此特定情况下,window.scrollTo
调用需要替换为:
document.querySelector('core-scroll-header-panel').scroller.scrollTop = 100;
以下是相关的plunker。