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].scrollTop
和 document.body.scrollTop
在 OSX 上的 Firefox 19 上总是给我0
。 document.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?的主要内容,如果未能解决你的问题,请参考以下文章