我正在开发一个Angular 2/4项目,我必须在每次导航更改时向上滚动...由于我使用sidenav(Angular Material)和许多其他东西,这很复杂。 我刚刚经历了一个非常烦人的问题,其中包括:
this.router
.events
.filter(event => event instanceof NavigationEnd)
.subscribe(() => {
const contentContainer = document.querySelector('.mat-drawer-content');
contentContainer.scrollTo(0, 0);
});
如果在子组件之间进行任何导航,它会向上滚动,即使我在其他地方导航(到兄弟路线)。 它在Firefox和较新版本的Chrome(> = 61)中正常工作,但不幸的是,如果我使用例如,则会引发以下异常: Chrome 60或59(尚未针对任何其他版本进行测试)。
错误:未捕获(在承诺中):TypeError:e.scrollTo不是函数
我使用预构建的jQuery 2.1.1,并且在搜索问题时,Chrome v61似乎发生了重大变化。但我的问题恰恰相反:它的版本更高,而不是较低版本......
是否可以使其适用于每个(相关的)Chrome版本?
答案 0 :(得分:1)
实际上 scrollTo()
不是jQuery函数,它是用JavaScript定义的,你不能在元素上调用SELECT CampoValores, Numero FROM [dbo].[ObtenerDatosPropios] ('RE-00935898','Alvaro')
,它只是在{{1}中定义的方法对象,这就是你得到scrollTo()
的原因。
您只能在window
上调用它:
e.scrollTo is not a function
如果您查看window.scrollTo() Notes on MDN,您会看到:
有关滚动元素,请参阅
Element.scrollTop
和Element.scrollLeft
。