Swiper中文论坛
标题:
vue中使用swiper时无法响应式高度的解决方案
[打印本页]
作者:
jansanluan
时间:
2018-7-3 11:03
标题:
vue中使用swiper时无法响应式高度的解决方案
本帖最后由 jansanluan 于 2018-7-3 16:20 编辑
最近在vue中使用swiper的时候遇到了一个问题,当浏览器窗口的大小改变时没办法响应式的改变swiper组件的高度。尝试了几天之后找到了一种解决办法。直接上代码。
export default {
data() {
return {
swiperOptions: {
// 滑动方向
direction: 'vertical',
// 滑动速度
speed: 700,
// 设置容器同时显示的数量
slidesPerView: 1,
allowTouchMove: true,
spaceBetween: 0,
mousewheel: true,
// observer和observeParents必须设置
observer: true,
observeParents: true,
}
};
},
computed: {
swiper() {
return this.$refs.mySwiper.swiper;
}
},
mounted() {
// 初始化swiper的高度
this.swiper.el.style.height = window.innerHeight + 'px';
// 当屏幕尺寸改变时,
let timeout = null;
window.onresize = () => {
clearTimeout(timeout);
timeout = setTimeout(() => {
this.swiper.el.style.height = window.innerHeight + 'px';
}, 100);
};
}
};
复制代码
以及在vue文件中
<template>
<swiper ref="mySwiper" :options="swiperOptions">
<swiper-slide>
</swiper-slide>
</swiper>
</template>
复制代码
欢迎光临 Swiper中文论坛 (http://bbs.swiper.com.cn/)
Powered by Discuz! X3.2