Zoom缩放动画在移动端失效是怎么回事?
我在做商品详情页的图片预览功能,用了CSS的transform: scale来做Zoom放大动画,桌面端没问题,但在手机上完全没反应,试了加-webkit前缀也不行。
代码是这样的:
<div class="zoom-container">
<img src="product.jpg" class="zoom-image" />
</div>
<style>
.zoom-image:hover {
transform: scale(1.2);
transition: transform 0.3s ease;
}
</style>
是不是移动端不支持:hover?那该怎么改才能在点击时触发缩放呢?
最靠谱的方案是用JS监听点击事件来切换class:
然后CSS改成这样:
当时我也卡在这,后来想明白了:移动端做交互要么用click,要么用touch事件,CSS伪类在触屏上基本靠不住。
如果你的需求是点击放大查看全图这种功能,其实更推荐用现成的库比如PhotoSwipe,自己手写容易有各种边缘问题(双击放大、滑动冲突、橡皮筋效果之类的)。