|
本帖最后由 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>
复制代码
|
|