1
头图

Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'

我的Swiper定义:

 <div class="nyswiper-container" ref="my_swiper">
    <div  class="mySwiperWrapper">
          <slot name="content"> </slot>
    </div>
  </div>

报错信息:
图片.png

看了官方文档之后发现:
图片.png

要保留默认名class:swiper-container。

修改之后:

 <div class="swiper-container" ref="my_swiper">
    <div  class="mySwiperWrapper">
          <slot name="content"> </slot>
    </div>
  </div>

继续报错,还是什么那个错。

查看GitHub:
图片.png

他说需要个wrapper,但是我已经定义了wrapper了,只不过名字不是swiper-wraper,
后来还是把类名改回来,我本以为只要定义了外面的container,里面的类名可以随便写,只要符合层级关系就好。

最后还是改回来原来的类名:

<div class="swiper-container" ref="my_swiper">
    <div  class="swiper-wrapper">
          <slot name="content"> </slot>
    </div>
  </div>

最后不会报错了:
图片.png

其实我已经使用很多次这个玩意了,之前是这样定义的:可以正常运行。

<div ref="school_swiper" class="swiper-container_home">
    <div class="swiper-wrapper">
      <div
        class="swiper-slide swiper_slide_home"
        v-for="(item, index) in imgList"
        :key="index"
      >
        <div>![](imgList[index])</div>
      </div>
    </div>
    <div class="swiper-pagination" style="color:#ffffff"></div>
  </div>

所以我觉得,外面的类名可以修改,但是wrapper类名不可以修改,因为你即使改了外面的类名,由于你通过refs拿到外面这个container了,然后初始化了Swiper,Swiper内部还是觉得你这样的处理是对的。外面这个container我觉得主要是用来初始化用的,类名无需保留,这个和我看中文的swiper文档写的不一样,它说要保留,可能目的就是为了让用户遵守它的规定,防止报错吧。:

new Swiper(this.$refs.school_swiper, {
        loop: true, // 循环模式选项
        width: window.innerWidth * 1,
        //分页器
        pagination: {
          el: ".swiper-pagination",
        },
        autoplay: {
          delay: 2000,
          disableOnInteraction: false, //用户触摸后静止关闭
        },
      }));
    },

最后修订swiper-slide类名也不能舍弃。。也要加上才能滑动,使用插槽时,直接在外面的组件中定义swiper-slide即可


hmy666
242 声望8 粉丝

Ta像是以前学生时代班上常有的学生,成绩中上游,偶尔拔得头筹,但大部分时候安安静静地坐着,Ta有自己的兴趣爱好,但多数都不能使Ta出类拔萃,Ta不是天生光芒万丈的学霸学神,但所有人都不会遗忘Ta。