jqzoom弹出对齐与移动野生动物园(ipad)

时间:2011-10-15 16:09:40

标签: ipad mobile-safari alignment jqzoom

我有jqzoom所有设置,一切都很好,除了一些东西,即使我告诉jqzoom将弹出图像对准原始图像的右边,在我们的ipad上它将图像放在左边。

有没有人知道jqzoom的工作情况,足以知道为什么会这样做?看起来jqzoom设置[left:]无论如何,只是相应地调整[left:]值(比如在-minus方向),如果弹出按钮在右边?如果是这样的话,不能只做一个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>

正常和预期:

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

Mobile Safari:

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

1 个答案:

答案 0 :(得分:1)

我自己找到了答案。 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));

后:

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));
}