vue-awesome-swiper遇到的坑!!!(包括swiper display: none后在显示的bug)

匿名 (未验证) 提交于 2019-12-03 00:22:01

前言

一、版本问题

swiperOption: {   // 表示pagination的html标签class是swiper-pagination   pagination: '.swiper-pagination' }
 /** 千万不要用下面这套,这一套是swiper4版本的,我们vue-awesome-swiper2.5.4版本的是用swiper3.0的API     *   pagination: {     el: '.swiper-pagination'   }   */

二、vue-awesome-swiper在隐藏后在显示,滑动效果无效的bug


html代码:

<div class="swiper-group">  <!-- 鼠标移动到showSwiper的div时,显示swiper -->   <div class="showSwiper"></div>   <swiper>     <swiper-slide        class="swiper-slide-item"        v-for="slide in slideItems"      >{{slide.name}}</swiper-slide>   </swiper> </div>

css代码

.swiper-group {    position: relative;    .showSwiper {      width: 20px;      height: 20px;      position: absolute;      background: blue;    }
/* 关键是下面三行代码,用于替换display: none */
   .swiper-container {       visibility: hidden;       z-index: -1;       position: absolute;    }
 / * 鼠标移入class为showSwiper的div,显示swiper */
   &:hover .swiper-container {      visibility: visible;    } }

swiperOption: {   pagination: '.swiper-pagination',  // 启动动态检查器(OB/观众/观看者),当改变swiper的样式(例如隐藏/显示)或者修改swiper的子元素时,自动初始化swiper。  // 默认false,不开启,可以使用update()方法更新   observer: true,  // 将observe应用于Swiper的父元素。  // 当Swiper的父元素变化时,例如window.resize,Swiper更新。   observerParents: true   }



是不是很坑?感觉就是这样导致observer没效!

总结

哎,搞了一整天,希望我发现的bug能够帮助你们!做程序员也不容易呀,头发都掉了几条,最后把完整代码一并发上来

html代码

<div class="swiper-group"> <!-- 当鼠标移进去class为showSwiper的div中时,显示swiper -->       <div class="showSwiper"></div>       <swiper :options="swiperOption" class="swiper-container" ref="mySwiper">         <swiper-slide class="swiper-item" v-for="(swiper, index) in swiperViews" :key="index">           <ul class="project-lists">             <router-link               tag="li"               class="project-list-item"               v-for="item in swiper"               :key="item.path"               :to="item.path"               @click.native="addToNavBar(item.name)"             >               <img :src="require(`@/${item.iconUrl}`)" alt="">               <p class="project-name">{{item.name}}</p>             </router-link>           </ul>         </swiper-slide> <!-- 注意!一定要把swiper-pagination这个分页器写在swiper标签里面,swiper-slide标签外面 -->         <div class="swiper-pagination"  slot="pagination"></div>       </swiper>  </div>

css代码

.swiper-group {    position: relative;    .showSwiper {      width: 20px;      height: 20px;      position: absolute;      background: blue;    }   /* 关键是下面三行代码,用于替换display: none */    .swiper-container {       visibility: hidden;       z-index: -1;       position: absolute;    }   / * 鼠标移入class为showSwiper的div,显示swiper */    &:hover .swiper-container {       visibility: visible;    } }

js代码

好了,暂时发现就这两个bug,以后在有发现或者小伙伴们有什么问题,可以留言噢~谢谢啦

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!