【发布时间】:2020-06-04 17:46:17
【问题描述】:
import 'alpinejs'
window.scrollToTop = () => {
return {
scroll() {
const t = document.documentElement.scrollTop || document.body.scrollTop
if ( t > 0 ) {
window.requestAnimationFrame( this.scroll )
window.scrollTo( 0, t - t / 10 )
}
}
}
}
我正在使用下面的代码来做一个简单的滚动到顶部的动画。
使用 window.scrollToTop,因为我使用 ParcelJS 来捆绑项目,所以我必须将它附加到 window 对象。
当我尝试运行滚动功能时出现此错误。
app.js:8 Uncaught TypeError: Cannot read property 'scroll' of undefined
我在滚动点击时做了一个console.log,似乎在方法this.scroll 内被识别。但是当调用window.requestAnimationFrame 时,它会变成undefined?我尝试将它作为变量传递,但它也不起作用。在这种情况下,如何使用requestAnimationFrame 递归调用自身?
【问题讨论】:
-
您是否尝试在进入 scroll() 方法并使用 that.scroll 之前复制此内容:例如
that = this? -
是的,我试过了。
标签: javascript alpine.js