需求:微信预览图片要能滑动加载更多,不然一次性请求全部的图片地址,后台压力挺大。
微信预览图片一般用微信提供的 wx.previewImage 实现,但是这个api相当于是新开个页面单独给你进行加载,一些交互也没法做,像要的需求就无法实现,后来还是使用 swiper 和 movable-view 实现的简陋版预览图片,简单的层级如下(我是用的Taro):
<Swiper vertical={false} >
{imgList.map(item => {
return <SwiperItem key={item}>
<MovableArea>
<MovableView
direction='all'
scale
>
<Image src={item} showMenuByLongpress />
</MovableView>
</MovableArea>
</SwiperItem>
})}
</Swiper>
大体实现了 wx.previewImage ,不过放大图片之后,左滑右滑图片会带动外层的Swiper进行翻页,由于我是Taro3,滚动冒泡只能通过catchMove阻止,但是我在Swiper和MovableArea中间包一层View,动态改catchMove,会导致页面闪动,图片位置移动。后来我在Swiper和MovableArea中间加了一层ScrollView,发现效果好一些了,右滑还是有问题,但是左滑没有滚动穿透了,也就只能先这么着了。