PinchZoom.js与iOS设备上的Owl Carousel不兼容



所以我一直在思考我遇到的这个问题。我已经指出我的问题是Owl Carousel v2.2.1插件与PinchZoom.js v2.3.4不兼容。

我还使用了Owl Carousel v2.3.4的最新版本,显然PinchZoom.js完全停止工作,所以我不得不使用Owl Carousel的早期版本来实现我需要的功能。

问题是,在带有猫头鹰旋转木马滑块的页面上,PinchZoom.js在Android和Desktop设备上运行良好,但只要我使用iOS设备(iPad或iPhone(,放大该页面时图像就会模糊。其他页面可以很好地使用PinchZoom,这些页面上没有定义猫头鹰旋转木马插件。

这是一个很好的例子:

http://epaperbeta2.eenadu.net/Home/Index

在iPhone或iPad上,点击底部的广告容器将其隐藏,然后选择日期为1st Nov 2019。现在,当你双击第一页进行缩放时,你会看到它在缩放时是模糊的。现在,当你转到下一页并缩放时,你会注意到图像没有模糊,并且显示正确。

iOS设备上的双击缩放和捏缩缩放在使用Owl Carousel初始化的页面上也不起作用。

有人知道为什么PinchZoom.js在iOS设备上与Owl Carousel不兼容吗。

任何帮助都将不胜感激。

更新:这仍然是一个问题。我甚至尝试过使用另一个名为Slick的滑块,但问题仍然存在。我甚至尝试过更改滑块和整个页面的css样式,但没有成功。

在PinchZoom中,有一个名为use2d的选项可以正确处理未使用Owl Carousel初始化的页面,但一旦初始化了带有Owl Carousel或Slick的页面,此属性就会失败。我相信这与插件的translatescale属性有关。也许是一些相互冲突的更改导致了这种情况,但为什么只在iOS设备上?

有什么帮助吗?

确保您在用于桌面和android的浏览器上检查ios设备,这看起来像是css兼容性(浏览器支持(问题。

如果它在chrome中运行良好,那么在所有需要的设备中安装chrome并尝试一下。

注意:PinchZoom是在Vanilla JS上写的,owl carousel是在jquery上写的所以JS冲突的可能性很小,因为它也在桌面上工作。

检查浏览器支持

https://caniuse.com/#search=scale

https://caniuse.com/#search=translate

// Below code will only work on chrome.  
yourdiv {
transform: translate(50px, 100px);
transform: scale(2, 3);
}

无法访问您的链接-http://epaperbeta2.eenadu.net/Home/Index

因此,经过大量的研究和试用,我无法使两个插件在同一页面上协同工作,因为translate3d属性被插件覆盖。

我找到的解决方法是在jQuery中使用slider插件,该插件不使用translate3d选项来滑动图像。幸运的是,我发现了这样一个使用translateX属性的插件,并将其纳入了我的页面中,现在PinchZoom功能方面一切都很好。问题中的当前url现在更新为使用新的滑块插件,如果您在iOS设备上缩放时看到模糊的图像,则不再像以前那样。

我不会将其标记为正确答案,因为这只是一个变通方法,而不是我所问的最初问题的实际解决方案。如果有人还知道为什么会发生这个问题,我想知道。

感谢

最新更新