我有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:
.-----. .--.
| | | |
| | `--'
`-----'
答案 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));
}