微信小程序——仿抖音短视频切换效果

一直以为抖音短视频切换假如用小程序做的话应该是比较简单的,直接用swiper实现就好,但在实际写的过程中才发现没那么简单,要控制的逻辑还是挺多的。

还是先看效果

在这里插入图片描述

体验路径

自定义组件系列》》仿抖音短视频切换
在这里插入图片描述

代码逻辑

直接调用自定义的swiper组件就好
调用代码
js


const videoList = []
Page({
  data: {
    videoList,
    activeId:2,
    isPlaying:true
  },
  onLoad() {
    var that = this
    wx.getSystemInfo({
      success: function(res) {
        that.setData({
          systemInfo:res,
          menuButtonBoundingClientRect: wx.getMenuButtonBoundingClientRect(),
        })
        console.log(res)
      },
    })
    this.setData({
      videoList: [{
        id: 1,
        title: "黄渤",
        desc: "中国女排发布会,黄渤与巩俐中国女排发布会,黄渤与巩俐",
        url: "https://6e6f-normal-env-ta6pc-1300924598.tcb.qcloud.la/video-swiper/1589851354869410.mp4?sign=1f636557effa496e074332e3f4b9b8aa&t=1589851461"
      }, {
        id: 2,
        title: "莱万多夫斯基",
        desc: "莱万多夫斯基逆天五子登科",
        url: "https://6e6f-normal-env-ta6pc-1300924598.tcb.qcloud.la/video-swiper/1589851322674828.mp4?sign=185e46cba885c4303c7cf5f8658bea9b&t=1589851482"
      }, {
        id: 3,
        title: "驾考那些事",
        desc: "半坡起步是多难",
        url: "https://6e6f-normal-env-ta6pc-1300924598.tcb.qcloud.la/video-swiper/1589851312271309.mp4?sign=978660c42305ec67d4c3d603c2ae5a3d&t=1589851496"
      }, {
        id: 4,
        title: "小美女",
        desc: "蹦蹦跳跳",
        url: "https://6e6f-normal-env-ta6pc-1300924598.tcb.qcloud.la/video-swiper/1589851307588534.mp4?sign=43cf344e83089348eeeea38d26ba51bb&t=1589851514"
      }, {
        id: 5,
        title: "黄渤",
        desc: "中国女排发布会,黄渤与巩俐中国女排发布会,黄渤与巩俐",
        url: "https://6e6f-normal-env-ta6pc-1300924598.tcb.qcloud.la/video-swiper/1589851354869410.mp4?sign=1f636557effa496e074332e3f4b9b8aa&t=1589851461"
      }, {
        id: 6,
        title: "莱万多夫斯基",
        desc: "莱万多夫斯基逆天五子登科",
        url: "https://6e6f-normal-env-ta6pc-1300924598.tcb.qcloud.la/video-swiper/1589851322674828.mp4?sign=185e46cba885c4303c7cf5f8658bea9b&t=1589851482"
      }, {
        id: 7,
        title: "驾考那些事",
        desc: "半坡起步是多难",
        url: "https://6e6f-normal-env-ta6pc-1300924598.tcb.qcloud.la/video-swiper/1589851312271309.mp4?sign=978660c42305ec67d4c3d603c2ae5a3d&t=1589851496"
      }, {
        id: 8,
        title: "小美女",
        desc: "蹦蹦跳跳",
        url: "https://6e6f-normal-env-ta6pc-1300924598.tcb.qcloud.la/video-swiper/1589851307588534.mp4?sign=43cf344e83089348eeeea38d26ba51bb&t=1589851514"
      }, {
        id: 9,
        title: "黄渤",
        desc: "中国女排发布会,黄渤与巩俐中国女排发布会,黄渤与巩俐",
        url: "https://6e6f-normal-env-ta6pc-1300924598.tcb.qcloud.la/video-swiper/1589851354869410.mp4?sign=1f636557effa496e074332e3f4b9b8aa&t=1589851461"
      }, {
        id: 10,
        title: "莱万多夫斯基",
        desc: "莱万多夫斯基逆天五子登科",
        url: "https://6e6f-normal-env-ta6pc-1300924598.tcb.qcloud.la/video-swiper/1589851322674828.mp4?sign=185e46cba885c4303c7cf5f8658bea9b&t=1589851482"
      }, {
        id: 11,
        title: "驾考那些事",
        desc: "半坡起步是多难",
        url: "https://6e6f-normal-env-ta6pc-1300924598.tcb.qcloud.la/video-swiper/1589851312271309.mp4?sign=978660c42305ec67d4c3d603c2ae5a3d&t=1589851496"
      }, {
        id: 12,
        title: "小美女",
        desc: "蹦蹦跳跳",
        url: "https://6e6f-normal-env-ta6pc-1300924598.tcb.qcloud.la/video-swiper/1589851307588534.mp4?sign=43cf344e83089348eeeea38d26ba51bb&t=1589851514"
      }]
    })
  },
  onPlay(e) {
    // console.log("开始播放",e)
  },
  onShowPause(e){
    this.setData({
      isPlaying: false
    })
  },
  onHidePause(e){
    this.setData({
      isPlaying: true
    })
  },
  onPause(e) {
  },

  onEnded(e) {
    // console.log(e)
  },

  onError(e) {
  },

  onWaiting(e) {
  },

  onTimeUpdate(e) {
  },

  onProgress(e) {
  },
  onChange(e) {
    console.log(e)
    console.log("id",e.detail.activeId)
    this.setData({
      activeId:e.detail.activeId
    })
  },
  onLoadedMetaData(e) {
    console.log('LoadedMetaData', e)
  },
  go2Home() {
    wx.navigateBack({
      delta: 1,
    })
  },
})

wxml

<mp-video-swiper class="video-swiper" video-list="{{videoList}}" bindplay="onPlay" bindpause="onPause" bindtimeupdate="onTimeUpdate" bindended="onEnded" binderror="onError" bindwaiting="onWaiting" bindprogress="onProgress" bindloadedmetadata="onLoadedMetaData"
  bindchange="onChange" bindshowPause="onShowPause" bindhidePause="onHidePause"></mp-video-swiper>
  <image wx:if="{{!isPlaying}}" class="imagePlayer" style="left:{{systemInfo.screenWidth/2-40/2}}px;top:{{systemInfo.screenHeight/2-40/2}}px" src="./player.png">

  </image>
<view class="viewFloat">
  <view class="videoTitle">{{videoList[activeId-1].title}}</view>
  <view class="videoDes">{{videoList[activeId-1].desc}}</view>
</view>
<view class="viewTabContainer">
  <view class="viewTab">首页</view>
  <view class="viewTab">动态</view>
  <view class="viewTab">商品</view>
  <view class="viewTab">我的</view>
</view>

wxss

@import '../common.wxss';

page{
    background-color: black;
    height: 100%;
}

mp-video-swiper {
    width: 100%;
    height: 100%;
}
.imagePlayer{
  width: 40px;
  height: 40px;
  position: fixed;
  z-index: 1000;
  opacity: 0.6
}
.viewFloat{
  position: fixed;
  display: flex;
  z-index: 100;
  width: 500rpx;
  bottom: 60px;
  color: white;
  margin:20rpx; 
  flex-direction: column

}
.videoTitle{
  font-size: 18px;
  font-weight: 500;

}
.videoDes{
  font-size: 14px;
}
.viewTabContainer{
  position: fixed;
  display: flex;
  justify-content: space-around;
  align-items: center;
  flex-direction: row;
  width: 100%;
  height: 50px;
  border-top: 0.5px solid white;
  bottom: 0;
}
.viewTab{
  color: white;
}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玩烂小程序

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值