js-vue-swipe图片放大—踩坑

本文介绍了在Vue项目中利用Photoswipe实现图片预览功能时遇到的问题,即当图片URL未在页面加载时,首次调用预览可能导致图片无法显示。解决方案是通过在页面加载时使用隐藏的img标签对images数组中的URL进行预加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于photoswipe实现的vue图片预览组件

  1. 安装

    	npm install vue-image-swipe -D
    
  2. 引用

    	import Vue from 'vue'
    	import VueImageSwipe from 'vue-image-swipe'
    	import 'vue-image-swipe/dist/vue-image-swipe.css'
    	Vue.use(VueImageSwipe)
    
  3. 使用

    	<template>
    	<div>
    	  hello world
    	  <div>
    	    <ul>
    	      <li
    	        :key="index"
    	        @click="preview(index)"
    	        v-for="(l, index) in images">
    	         <img :src="l" alt="">
    	      </li>
    	    </ul>
    	  </div>
    	</div>
    	</template>
    	<script>
    	export default {
    	  name: 'app',
    	  data() {
    	    return {
    	      images: [
    	        'http://oayhezji6.bkt.clouddn.com/preview1.jpg',
    	        'http://oayhezji6.bkt.clouddn.com/preview2.jpg',
    	        'http://oayhezji6.bkt.clouddn.com/preview3.jpg',
    	        'http://oayhezji6.bkt.clouddn.com/preview9.jpg',
    	        'http://oayhezji6.bkt.clouddn.com/preview10.jpg',
    	        'http://oayhezji6.bkt.clouddn.com/preview6.jpg'
    	      ]
    	    }
    	  },
    	  created() {
    	  },
    	  methods: {
    	    preview(index) {
    	      this.$imagePreview({
    	        images: this.images,
    	        index: index,
    	      })
    	    }
    	  }
    	}
    	</script>
    

上面是官方给的文档例子,可是关于this.$imagePreview中的images官方的解释为:图片的url数组

可是却没有说明一个坑:当传递到的images图片的url链接没有在页面进行加载的时候(没有使用img标签引用),那么第一次调用$imagePreview会导致图片无法显示

解决方案:
将 images数组的url数组进入页面的时候,使用img标签提前进行预加载,加上css display:none不显示即可

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值