该项目是用 vue1 写的老项目,我想在里面使用 swiper。起初我通过 npm 安装的 swiper 11,但是使用 swiper-container 时,发现该元素获取到为 null,不能使用自定义元素。这种方法在别的 vue2 项目里是正常的。
于是我查找资料,在vue-awesome-swiper看到:
Swiper 3.x vue-awesome-swiper@2.6.7 (Vue2)
既然 swiper 3 适用于 vue2,所以我就选择用 swiper 2 试试。我下载了 Swiper2.7.6完整包,看了 12-partial-display.html,想要这种小的 slide 效果。我按照这个示例在 html 中引入样式和脚本。
<head>
<link rel="stylesheet" href="/static/css/idangerous.swiper.css">
<script type="text/javascript" src="//webresource1.aoyou.com/js/webapp/common/jquery.min.js?ver=100"></script>
</head>
<body>
<div id="app"></div>
<script src="/static/js/idangerous.swiper.min.js"></script>
</body>
在 vue 组件中使用
<template>
<div class="swiper-container">
<div class="swiper-wrapper">
<div
class="swiper-slide"
v-for="item in chooseList"
:key="item.name"
:style="`background-image: url(${item.banner})`"
>
<img :src="item.icon" alt="icon" />
<div>
<h3>{{item.name}}</h3>
<p
style="-webkit-box-orient: vertical;"
>{{item.description}}</p>
</div>
</div>
</div>
<div class="pagination"></div>
</div>
</template>
<script>
export default {
methods: {
//初始化 swiper 2
initializeSwiper2(){
var mySwiper = new Swiper('.swiper-container',{
pagination: '.pagination',
slidesPerView: 'auto'
});
},
},
ready(){
this.$nextTick(this.initializeSwiper2);
},
}
</script>
但是效果如下。

可以看到 .swiper-wrapper 没有内连样式,.pagination 没有内容,布局是错的。可见 swiper 初始化没成功。哪位同学知道该怎么写吗?请指教!