Dojo 相当于 $(document).scrollTop?

Posted

技术标签:

【中文标题】Dojo 相当于 $(document).scrollTop?【英文标题】:Dojo equivalent of $(document).scrollTop? 【发布时间】:2012-12-13 13:52:56 【问题描述】:

正如你在 jQuery 中所知道的,$(document).scrollTop() 用于检查窗口的滚动位置。在道场中可以使用相同的功能吗?我用过

dojo.query('html')[0].scrollTop()

但在 webkit 中存在错误 - 它总是返回 0

【问题讨论】:

如果查询 body 而不是 html 会发生什么? 在 Webkit 中没问题,但在 Firefox 中 sctollTop 为 0 尝试创建一个div,其中包含body 中的所有内容,并将其宽度和高度设置为100%,查看该div 上的scrollTop 是否按预期运行。 【参考方案1】:

dojo 你必须这样做:

dojo.query('body')[0].scrollTop

注意scrollTop 是一个属性而不是一个函数,否则你会得到错误:

TypeError: Property 'scrollTop' of object #<HTMLBodyElement> is not a function

更新

以上代码在 Ubuntu 11.10 上与 Dojo 1.8、Chromium 18.0、Rekonq 0.8 和 Firefox 17.0 配合良好。

【讨论】:

这个代码在 Firefox 中是错误的,scrollTop 总是等于 0 不是dojo.query('body')[0] === document.body吗?对我来说返回 true,所以这是 vanilla JS。无论如何,dojo.query("body")[0].scrollTopdocument.body.scrollTop 在 OSX 上的 Firefox 19 上总是给我0document.documentElement.scrollTop 在 Firefox 中给了我正确的值。【参考方案2】:

如果 2017 年还有人对此感兴趣。 你必须这样做:

dojo.query('body')[0].scrollTop = 0;

在 IE11、Firefox 51.0.1 和 Chrome 56.0.xx 上测试

【讨论】:

【参考方案3】:

请尝试query("html")[0].scrollTop || query("body")[0].scrollTop

【讨论】:

以上是关于Dojo 相当于 $(document).scrollTop?的主要内容,如果未能解决你的问题,请参考以下文章

Dojo 相当于 jQuery $('html')

dojo常用函数

dojo常用函数

什么是 jQuery 委托的 DOJO 等价物? [复制]

dojo教程:未定义dojo

Hello Dojo!(翻译)