收藏
回答

有办法在swiper滑块视图容器中,获得滑动前窗口的index吗?

在swiper-item中放入video,左右滑动可在多个video中切换。其中属性bindchange可以监听change事件且e.detail.current可以得到滑动后新窗口的index。问题是现在希望当用户滑动到下个视频时,自动停止播放上个窗口的视频。因此需要知道滑动前窗口的index,当前current减1肯定不行,因为用户可以左右滑动。同时找了找,也没有发现判断用户是向左滑动还是向右滑动的方法,所以无法计算出滑动前窗口的index。

把文档看完了也不知道怎么实现,求解!

回答关注问题邀请回答
收藏

3 个回答

  • WGinit
    WGinit
    2020-11-16

    扩展组件:video-swiper了解一下

    2020-11-16
    有用 1
    回复 1
    • Yan Lu
      Yan Lu
      2020-11-16
      用video-swiper也不行啊,没有提供想要的功能。
      2020-11-16
      回复
  • Yan Lu
    Yan Lu
    2020-11-17

    已经解决。

    1,多个swiper item中分别使用videoInstance,互不干扰。videoInstance id与当前swiper item index绑定在一起:

    <video class="page-body" id="myVideo{{index}}" show-play-btn="true" src="{{videoSrc}}{{itemName}}.mp4" object-fit="fill" ></video>

     2,bindchange绑定stopVideo函数,且使用两个变量保存当前index和滑动前index,默认值都为0.

    stopVideo: function(e) { //当窗口滑动时触发

        this.data.previousSwiperIndex = this.data.currentSwiperIndex

        this.data.currentSwiperIndex = e.detail.current

        this.videoInstance = wx.createVideoContext("myVideo" + this.data.previousSwiperIndex)

        this.videoInstance.stop() // stop previous video playing

      }


    2020-11-17
    有用 1
    回复
  • 谢福强
    谢福强
    发表于移动端
    2021-10-31
    有用时
    2021-10-31
    有用
    回复
登录 后发表内容
问题标签