重置页面之间滚动位置的最佳做法?

Dav*_*tik 8 polymer dart-polymer

所以即使是Polymer网站也有这个问题.这是SPA世界的问题.

Repro:转到http://www.polymer-project.org/docs/elements/core-elements.html,单击左侧的core-ajax并向下滚动到中间,然后转到core-xhr.请注意滚动位置.

考虑到我a)想要避免上述行为的一些最佳实践,还有b)想要保留滚动位置,当我使用后退箭头转到我已经存在的页面时?如果核心页面内置了支持,那就太好了.

小智 3

这可能是一种解决方法。您可以在聚合物中使用fire事件,一旦有事件触发,您就会监听调用并强制页面滚动到 top。至少这解决了我的core-animated-pages转换问题:slide-from-right

聚合物

this.fire('scroll-top')

索引.html

document.addEventListener('scroll-top', function(){
    // Access the main core-header-panel 
    var scaffold = document.querySelector('core-scaffold');
    var scrollArea = scaffold.shadowRoot.querySelector('core-header-panel');
    scrollArea.scroller.scrollTop = 0; // Scroll to top
    }
)
Run Code Online (Sandbox Code Playgroud)