我有以下函数,该函数是从分配给DIV的onscroll事件中调用的。
它无法正常工作。当页面处于最大滚动位置时,我最终得到以下值: scrollTop = 55 offsetHeight = 529
当我检查具有触发该函数的onscroll事件的DIV时,我看到以下计算值: 206.667px
我注意到如果我调整浏览器窗口的大小,offsetHeight值会改变。但是,我也注意到这个值小于身体标签本身的大小。
我很困惑。当页面位于页面底部时,顶部和最大值如何不相等?任何人都知道我错过了什么?
仅供参考 - 我也尝试过scrollHeight和clientHeight;他们似乎也提供了不准确的价值观,至少基于我的期望。
function scrollPos(id){
var top = document.getElementById(id).scrollTop;
var max = document.getElementById(id).offsetHeight;
document.getElementById('scrollTest').innerHTML = 'top: '+top+'<br>max: '+max;
}
答案 0 :(得分:1)
评论过于冗长,但引用MDN:
Element.scrollTop
属性获取或设置像素数 元素的内容向上滚动。元素的scrollTop 是元素顶部到顶部距离的度量 可见内容。
和
HTMLElement.offsetHeight
只读属性是。的高度 元素包括垂直填充和边框,以像素为单位 整数。
这两个传达了相当不同的东西,你为什么期望它们是一样的?
答案 1 :(得分:1)
In file included from /Users/travis/build/spacedrabbit/SRRandomUser/Random Strangers/SRRandomUser/SRRandomUser/SRRandomUserAPIManager.h:10:
In file included from /Users/travis/build/spacedrabbit/SRRandomUser/Random Strangers/SRRandomUser/../../Pods/Headers/Public/FSNetworking/FSNConnection.h:36:
/Users/travis/build/spacedrabbit/SRRandomUser/Random Strangers/SRRandomUser/../../Pods/Headers/Public/FSNetworking/FSNData.h:42:18: error: expected a type
+ (id)withImage:(UIImage*)image jpegQuality:(CGFloat)quality fileName:(NSString*)fileName;
^
/Users/travis/build/spacedrabbit/SRRandomUser/Random Strangers/SRRandomUser/../../Pods/Headers/Public/FSNetworking/FSNData.h:42:46: error: expected a type
+ (id)withImage:(UIImage*)image jpegQuality:(CGFloat)quality fileName: (NSString*)fileName;
^
2 errors generated.
结帐工作it throws the error in SRRandomUserGenerator
。请忽略它作为AngularJS指令编写,但概念保持不变。