jQuery documentation for offset()状态:
Also, dimensions may be incorrect when the page is zoomed by the user; browsers do not expose an API to detect this condition.
但是,当使用spread来放大页面内容时,有没有办法在触摸环境中的浏览器中计算正确的偏移?
我创建了一个小样本来演示问题:https://jsfiddle.net/dhykgsmp/4/(在Chrome中打开).请向下滚动并单击放大.自动完成输入的偏移量是错误的.
谢谢.
最佳答案 我遇到了同样的问题并找到了解决方法.
您需要一个零偏移的根子元素才能使其工作.
$.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;
}
}