jqzoom弹出式按钮与mobile safari(ipad)对齐

jqzoom弹出式按钮与mobile safari(ipad)对齐,ipad,mobile-safari,alignment,jqzoom,Ipad,Mobile Safari,Alignment,Jqzoom,我有jqzoom的所有设置,除了几件事情外,一切都很好,其中一件是即使我告诉jqzoom将弹出式图像对齐到原始图像的右侧,但在我们的ipad上它会将图像放在左侧 有人对jqzoom的工作原理了解得足够透彻,知道它为什么会这样做吗?看起来jqzoom正在设置[left:]不管怎样,如果弹出按钮要在右侧,则只需相应地调整[left:]值(比如在-负方向上)?如果是这样的话,它不能只做一个If/else吗?如果它需要在右边,设置[right:]而不是[left:] 这是我如何设置jqzoom的: &l

我有jqzoom的所有设置,除了几件事情外,一切都很好,其中一件是即使我告诉jqzoom将弹出式图像对齐到原始图像的右侧,但在我们的ipad上它会将图像放在左侧

有人对jqzoom的工作原理了解得足够透彻,知道它为什么会这样做吗?看起来jqzoom正在设置[left:]不管怎样,如果弹出按钮要在右侧,则只需相应地调整[left:]值(比如在-负方向上)?如果是这样的话,它不能只做一个If/else吗?如果它需要在右边,设置[right:]而不是[left:]

这是我如何设置jqzoom的:

<div id="jqDiv" style="width:400px; height:400px;">
<a id="imageNameAId" href="http://path.to.image/bigImage.jpg" class="MYCLASS" rel="gal1">
    <img src='http://path.to.image/smallImage.jpg' alt='imageName' id='imageNameImgId' height="400" width="400" />
</a>
</div>

<script type="text/javascript">
var options = {
    zoomType: "standard",
    lens: true,
    preloadImages: true,
    alwaysOn: false,
    zoomWidth: 600,
    zoomHeight: 600,
    xOffset: 10,
    yOffset: 0,
    position: "right",
    title: false
};
// Delay jqzoom binding to allow (rel) thumbnail images time to load
setTimeout( function() {
    jQuery('#imageNameA').jqzoom(options);
}, 500);
</script>
移动狩猎:

.-----. .--.
|     | |  |
|     | `--'
`-----'

我自己找到了答案。jqzoom确定右侧是否有足够的空间放置弹出式按钮图像,而在iPad上则没有(在我们的例子中),因此它将其显示在左侧。它做到了这一点,尽管右边的空间比左边多

因此,我检测到iPad,并按预期将其推向右侧

在第535行附近的jquery.jqzoom-core.js中:

之前:

    this.node.leftpos = (smallimage.rightlimit + Math.abs(settings.xOffset) + settings.zoomWidth < screen.width) ? (smallimage.ow + Math.abs(settings.xOffset)) : (0 - settings.zoomWidth - Math.abs(settings.xOffset));
this.node.leftpos=(smallimage.rightlimit+Math.abs(settings.xOffset)+settings.zoomWidth
之后:

if (navigator.userAgent.match(/iPad/i) != null) {
    this.node.leftpos = (smallimage.ow + Math.abs(settings.xOffset));
} else {
    this.node.leftpos = (smallimage.rightlimit + Math.abs(settings.xOffset) + settings.zoomWidth < screen.width) ? (smallimage.ow + Math.abs(settings.xOffset)) : (0 - settings.zoomWidth - Math.abs(settings.xOffset));
}
if(navigator.userAgent.match(/iPad/i)!=null){
this.node.leftpos=(smallimage.ow+Math.abs(settings.xOffset));
}否则{
this.node.leftpos=(smallimage.rightlimit+Math.abs(settings.xOffset)+settings.zoomWidth
我今天意识到,在iPad上只强制将图像向右移动是没有用的,因为同样的问题也发生在iPhone和Androids上。因此,我删除了条件,只保留了“if”部分。因此,它现在强制所有设备和浏览器在右侧显示弹出式按钮图像,也就是说,如果“right”是已建立的设置。
if (navigator.userAgent.match(/iPad/i) != null) {
    this.node.leftpos = (smallimage.ow + Math.abs(settings.xOffset));
} else {
    this.node.leftpos = (smallimage.rightlimit + Math.abs(settings.xOffset) + settings.zoomWidth < screen.width) ? (smallimage.ow + Math.abs(settings.xOffset)) : (0 - settings.zoomWidth - Math.abs(settings.xOffset));
}