offset()
州的
此外,当用户缩放页面时,尺寸可能不正确;浏览器不公开API来检测这种情况。
但是,使用spread来缩放页面内容时,有没有办法计算触控环境浏览器中的正确偏移?
我创建了一个展示问题的小样本:https://jsfiddle.net/dhykgsmp/4/(在Chrome中打开)。请向下滚动并单击放大。自动完成输入的偏移量是错误的。
谢谢。
答案 0 :(得分:1)
我遇到了同样的问题并找到了解决方法。 您需要一个零偏移的根子元素才能使其正常工作。
$.fn.oldOffset = $.fn.offset;
$.fn.offset = function () {
var c = $.fn.oldOffset.apply(this, arguments);
// root child element with zero offset
var wrc = $('body').children().first().oldOffset();
var needToFix = wrc.left > 0 || wrc.top > 0;
if (needToFix) {
return {
left: c.left - wrc.left,
top: c.top - wrc.top
};
} else {
return c;
}
}
答案 1 :(得分:0)
我不确定此代码的预期功能是什么,但是如果您希望将'autocomplete input'元素相对于'autocomplete容器'定位,我建议使用.style.top属性,或者使用Element.getBoundingClientRect()获取位置,并在positionDropdown()函数中相应地设置位置。