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

时间:2014-07-30 21:03:30

标签: polymer dart-polymer

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

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

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

2 个答案:

答案 0 :(得分:3)

这可能是一种解决方法。您可以在聚合物中使用 fire 事件,一旦触发了倾听该事件的事件,并强制该页面滚动到顶部。至少这解决了 core-animated-pages 过渡的问题:从右边滑动

<强>聚合物

this.fire('scroll-top')

<强>的index.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
    }
)

答案 1 :(得分:-1)

更新01/01/2018

Polymer现在有一个很好的元素:

iron-scroll-threshold