我在jQuery中遇到了offset()
函数的跨浏览器问题。例如,我正在寻找锚标记的偏移量
例如。 $('#anchorid').offset().top
您可以看到每个返回值的差异。我并不太关心FF& IE8,但我和IE7以及其他人一起使用。
我可以使用的其他功能是相同或类似的跨浏览器或可能的解决方案吗?
答案 0 :(得分:10)
您的标记可能存在错误(非交叉浏览器)。但作为替代方案,您可以尝试使用原生javascript。
document.getElementById('anchorid').offsetTop
如果你想在整个页面上获得偏移量,你可以使用如下函数:
function findTotalOffset(obj) {
var ol = ot = 0;
if (obj.offsetParent) {
do {
ol += obj.offsetLeft;
ot += obj.offsetTop;
}while (obj = obj.offsetParent);
}
return {left : ol, top : ot};
}
答案 1 :(得分:0)
当我的脚本加载到我们想要获取offset().top
的元素的页面上时,我在IE8中遇到此问题。
if ($('#element').length){
$('#element').offset().top // ...
}
如果元素不存在,请不要执行offset().top
。