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

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

  1. 安装

        npm install vue-image-swipe -D

    引用

        import Vue from ‘vue‘
        import VueImageSwipe from ‘vue-image-swipe‘
        import ‘vue-image-swipe/dist/vue-image-swipe.css‘
        Vue.use(VueImageSwipe)

    使用

    <template>
        <div>
          hello world
          <div>
            <ul>
              <li
                :key="index"
                @click="preview(index)"
                v-for="(l, index) in images">
                 <img :src="l" >
              </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不显示即可

原文地址:https://www.cnblogs.com/edczjw-Edison/p/12604101.html

时间: 2024-10-15 22:21:20

js-vue-swipe图片放大—踩坑的相关文章

回顾vue开发spa(踩坑记录)

使用vueJS开发前端页面差不多也有大半多年了.由于项目后台管理页面最早都是使用JQ进行开发的,刚开始使用vue的时候,只能是直接在页面里面引入vueJS框架进行开发,期间把项目后台的编辑页面和其他复杂页面全部改用vueJS的了(没有用到组件,只是增强了一下交互,开发更简单便捷).由于工期和个人习惯问题,期间也留下了很多坑和隐患,比如不少页面是JQ和vue混用,导致后来改功能的时候痛不欲生-- 所以最近有一个新的后台管理页面,索性使用vue全家桶(vue,vue-router,vue-cil,v

js 鼠标上移 图片放大

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="

用JS实现,图片放大和缩小

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> img { margin: 100px 0px 0px 500px; } #div2 { margin-left: 500px; } #max, #min { display: inline-bloc

js点击图片放大预览

<!DOCTYPE html><html><head><meta charset="utf-8"><style type="text/css">#divid {position:fixed;z-index:2000;left:50%;top:50%;transform:translate(-50%,-50%);}#imgid {width:1000px;height:500px;}</style>

Vue(踩坑)vue.esm.js?efeb:628 [Vue warn]: Error in render: &quot;TypeError: Cannot read property &#39;0&#39; of undefined&quot; found in

1.项目报错如下 2.原因: 异步显示的数据先显示vuex中的初始数据,再显示请求的数据,一开始在vuex中state中的初始数据为空,报错是因为在显示初始数据的时候报错 3.解决:避免在没有数据的时候显示解析(有数据才解析) 有数据的时候div才存在,用v-if控制一下 5.总结:表达式有一层表达式(a),二层表达式(a.b),三层表达式(a.b.c), 当表达式三层的时候就有问题:比如a开始为空,a.b:的结果为undefined, a.b.c你再取的时候就会报错了 Vue(踩坑)vue.e

vue+ vue-router + webpack 踩坑之旅

说是踩坑之旅 其实是最近在思考一些问题 然后想实现方案的时候,就慢慢的查到这些方案   老司机可以忽略下面的内容了 1)起因  考虑到数据分离的问题  因为server是express搭的   自然少不了res.render("xx",data)    这句话的意思就是去查找相应的模板文件然后在用数据去渲染在将渲染好的页面去返回给浏览器,给浏览器去解析,渲染模板其实就是做的替换字符串+拼接字符串的活  各种的模板引擎也有各个优化的点(比如可以将对应的模板编译的函数保存在内存中,然后在通

webpack踩坑之路 (2)——图片的路径与打包

webpack踩坑之路 (2)--图片的路径与打包 刚开始用webpack的同学很容易掉进图片打包这个坑里,比如打包出来的图片地址不对或者有的图片并不能打包进我们的目标文件夹里(bundle).下面我们就来分析下在webpack项目中图片的应用场景. 在实际生产中有以下几种图片的引用方式: 1. HTML文件中img标签的src属性引用或者内嵌样式引用 <img src="photo.jpg" /> <div style="background:url(ph

前端学习---移动端vue开发踩坑记

前言: 大概两个月前投身于一个项目中去,项目是一个移动端的项目,所选用的框架是时下比较流行的vue.这篇文章也是针对这个项目和以前自己学习时的一些总结,包括一些通用的移动端开发要注意的事项.vue开发遇到的一些问题.本文的目的是为了在以后的开发中我们可以避免这些坑,提高我们的开发效率. 一.移动端开发特有问题: 1.移动端样式的兼容性: 在当前移动端的开发要面对各种不同的手机,不同的手机DPI也是不同的,比如Iphone 8的DPI就是2,Iphone 8P的DPI就是3.为了让页面可以兼容不同

vue 组件传值踩坑日记 1

今天在用平时很少用到的传值方式,是V2.4以后新加入属性$attrs $listener 以及inheritAttrs. 总结:这样形式的代码适合套娃模式的组件传递,却不适合兄弟组件的传值,那样的传值方式,需要创建一个事件总线,说白了就是新new一个空的vue,详见,我的第二篇日志<vue 组件传值踩坑日记 2> 废话不多说,直接上代码,大家可以边看注释边测试一下效果吧 <!DOCTYPE html> <html lang="en"> <hea