微信小程序仿抖音短视频切换效果的实例代码


Posted in Javascript onJune 24, 2020

一直以为抖音短视频切换假如用小程序做的话应该是比较简单的,直接用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;
}

总结

到此这篇关于微信小程序仿抖音短视频切换效果的实例代码的文章就介绍到这了,更多相关微信小程序抖音短视频切换内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
IE6下出现JavaScript未结束的字符串常量错误的解决方法
Nov 21 Javascript
Fixie.js 自动填充内容的插件
Jun 28 Javascript
document.compatMode的CSS1compat使用介绍
Apr 03 Javascript
DOM节点深度克隆函数cloneNode()用法实例
Jan 12 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
Feb 02 Javascript
AngularJS 路由和模板实例及路由地址简化方法(必看)
Jun 24 Javascript
jquery dialog获取焦点的方法
Feb 09 Javascript
jQuery插件jsonview展示json数据
May 26 jQuery
vue实现点击选中,其他的不选中方法
Sep 05 Javascript
优雅的使用javascript递归画一棵结构树示例代码
Sep 22 Javascript
Vue中qs插件的使用详解
Feb 07 Javascript
vue ssr+koa2构建服务端渲染的示例代码
Mar 23 Javascript
微信小程序swiper组件实现抖音翻页切换视频功能的实例代码
Jun 24 #Javascript
javascript实现前端成语点击验证优化
Jun 24 #Javascript
vue各种事件监听实例(小结)
Jun 24 #Javascript
keep-Alive搭配vue-router实现缓存页面效果的示例代码
Jun 24 #Javascript
javascript实现前端成语点击验证
Jun 24 #Javascript
vue单文件组件无法获取$refs的问题
Jun 24 #Javascript
JS实现数据动态渲染的竖向步骤条
Jun 24 #Javascript
You might like
php验证身份证号码正确性的函数
2016/07/20 PHP
PHP将URL转换成短网址的算法分享
2016/09/13 PHP
PHP实现登录搜狐广告获取广告联盟数据的方法【附demo源码】
2016/10/14 PHP
php面试中关于面向对象的相关问题
2019/02/13 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
2019/04/09 PHP
详解php反序列化
2020/06/10 PHP
goto语法在PHP中的使用教程
2020/09/17 PHP
让mayfish支持mysqli数据库驱动的实现方法
2010/05/22 Javascript
js判断一个元素是否为另一个元素的子元素的代码
2012/03/21 Javascript
IE8下Jquery获取select选中的值post到后台报错问题
2014/07/02 Javascript
JQuery显示、隐藏div的几种方法简明总结
2015/04/16 Javascript
JS模仿编辑器实时改变文本框宽度和高度大小的方法
2015/08/17 Javascript
JavaScript中通过提示框跳转页面的方法
2016/02/14 Javascript
AngularJs每天学习之总体介绍
2017/08/07 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
nodejs图片处理工具gm用法小结
2018/12/12 NodeJs
vue 搭建后台系统模块化开发详解
2019/05/01 Javascript
javascript实现blob加密视频源地址的方法
2019/08/08 Javascript
CentOS 8.2服务器上安装最新版Node.js的方法
2020/12/16 Javascript
python实现划词翻译
2020/04/23 Python
Python下使用Psyco模块优化运行速度
2015/04/05 Python
python实现中文输出的两种方法
2015/05/09 Python
玩转python爬虫之cookie使用方法
2016/02/17 Python
详解Python读取配置文件模块ConfigParser
2017/05/11 Python
Python实现的中国剩余定理算法示例
2017/08/05 Python
Pandas的read_csv函数参数分析详解
2019/07/02 Python
python numpy 反转 reverse示例
2019/12/04 Python
python Shapely使用指南详解
2020/02/18 Python
使用PyCharm官方中文语言包汉化PyCharm
2020/11/18 Python
为世界各地的女性设计和生产时尚服装:ROMWE
2016/09/17 全球购物
金融专业个人的自我评价
2013/10/18 职场文书
劳资员岗位职责
2013/11/11 职场文书
外贸采购员岗位职责
2014/03/08 职场文书
专家推荐信范文
2015/03/26 职场文书
Vue实现动态查询规则生成组件
2021/05/27 Vue.js
Python 中的 copy()和deepcopy()
2021/11/07 Python