所以我一直在思考我遇到的这个问题。我已经指出我的问题是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的页面,此属性就会失败。我相信这与插件的translate
和scale
属性有关。也许是一些相互冲突的更改导致了这种情况,但为什么只在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
设备上缩放时看到模糊的图像,则不再像以前那样。
我不会将其标记为正确答案,因为这只是一个变通方法,而不是我所问的最初问题的实际解决方案。如果有人还知道为什么会发生这个问题,我想知道。
感谢