微信小程序实现抖音播放效果的实例代码


Posted in Javascript onApril 11, 2020

最近项目要做一个类似于抖音的一个视频播放 需要小程序完成

微信小程序实现抖音播放效果的实例代码

在再次确定了需要这个需求的情况下就开始了(其实因为不是说这个功能不好做主要是但心做出来肯定不流畅 卡顿什么的 优化不好优化)

然后就开始啦

思路使用微信的 swiper 完成竖向滑动 然后分页加载首先先加载一次加载10个当滑动到第7个的时候加载下一页 (要处理自动播放的问题和加载多个有多个同时播放的问题)

效果图

微信小程序实现抖音播放效果的实例代码

代码

<swiper class="swiper" vertical='true' easing-function='default' bindchange='bindchange'>
	<block wx:for="{{weishipinglist}}" wx:for-item="key" wx:key="*this">
		<swiper-item>
			<view class="video-wrap">
				<video wx:if="{{index==hkindex}}" class="video" autoplay="{{true}}" lopp='{{true}}' src="{{key.videoid}}" enable-play-gesture='{{true}}' show-fullscreen-btn='{{false}}' controls='{{false}}' vslide-gesture-in-fullscreen='{{false}}' show-play-btn='{{false}}' enable-progress-gesture='{{false}}' show-mute-btn='{{false}}'></video>
				 <button class="buy" bindtap="click">{{index}}</button> 
			</view>
		</swiper-item>
	</block>
</swiper>
data: {
  weishipinglist: [],//视频数据
  hkindex: 0,//滑块index
 },
 //动态更新当前滑块下标
 bindchange(e) {
  this.setData({
   hkindex: e.detail.current
  })
  if (e.detail.current%10 == 7) {
   this.chaxunzhi(); //此处是表示在快要加载完了需在分页请求加载
  }
 },
//css代码可能有多余的 我就不挑了 引入时自己按需引入吧

page {
 width: 100%;
 height: 100%;

}

.video-wrap {
 width: 100%;
 height: 100%;
 position: relative;
 /* border: 1px dashed red; */
}

.video-wrap video {
 width: 100%;
 height: 100%;
 position: absolute;
 top: 0px;
 left: 0;
 z-index: 1;
}

.video-wrap .buy {
 width: 100rpx;
 height: 100rpx;
 line-height: 100rpx;
 border-radius: 50%;
 position: absolute;
 z-index: 100;
 bottom: 100rpx;
 left: 50rpx;
 font-size: 11pt;
 text-align: center;
 padding: 0px;
}

.swiper {
 width: 100%;
 height: 100%;
}

.tentbiaot {
 width: 400rpx;
 font-size: 30rpx;
 color: #fff;
 z-index: 99;
 white-space: normal;
 line-height: 40rpx;
 margin-top: 20rpx;
}

.diwen {
 width: 400rpx;
 color: #fff;
 z-index: 99;
 display: flex;
 align-items: center;
}

.toixaign {
 width: 50rpx;
 height: 50rpx;
 border-radius: 50rpx;
 margin-right: 10rpx;
}

.teiename {
 font-size: 34rpx;
 margin-right: 10rpx;
}

.diwe {
 display: flex;
 position: fixed;
 bottom: 100rpx;
 flex-direction: column;
 z-index: 99;
 left: 40rpx;
}


.dianzaidijila {
 width: 100rpx;
 position: fixed;
 right: 30rpx;
 bottom: 80rpx;
 display: flex;
 flex-direction: column;
 align-items: center;
 justify-content: center;
 z-index: 99;
}

.tuaobiao {
 display: flex;
 align-items: center;
 flex-direction: column;
 justify-content: center;
 margin-bottom: 30rpx;
}

.tobimg{
 width: 60rpx;
 height: 50rpx;
}

.tobimglw{
 width: 60rpx;
 height: 60rpx;
 margin-bottom: 20rpx;
}

.zitiet{
 color: #fff; 
 font-size: 26rpx;
 margin-top: 6rpx;
}

.zhaunfanan {
 width: 60rpx;
 height: 50rpx;
 padding: 0rpx;
 border: none !important;
 line-height: 0rpx;
}

.zhaunfananas {
 width: 60rpx;
 height: 50rpx;
}

完了需要注意的就是一个分页加载 我设置的是7因为我们数据是一页10条 会在第7条加载第二页数据

wx:if="{{index==hkindex}}" 这个起到的是控制加载要不会多个同时播放没刷到的也会播放 现在只会播放当前页面视频

总结

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

Javascript 相关文章推荐
Prototype使用指南之ajax
Jan 10 Javascript
深入了解javascript中的prototype与继承
Apr 14 Javascript
jquery.ui.draggable中文文档(原文翻译)
Nov 15 Javascript
Egret引擎开发指南之视觉编程
Sep 03 Javascript
javascript 原型链维护和继承详解
Nov 26 Javascript
jQuery事件绑定与解除绑定实现方法
Apr 15 Javascript
Javascript对象Clone实例分析
Jun 09 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
Jan 20 Javascript
Node.js与MySQL交互操作及其注意事项
Oct 05 Javascript
Node.js如何响应Ajax的POST请求并且保存为JSON文件详解
Mar 10 Javascript
Vue2.0 slot分发内容与props验证的方法
Dec 12 Javascript
在Vuex使用dispatch和commit来调用mutations的区别详解
Sep 18 Javascript
JS中间件设计模式的深入探讨与实例分析
Apr 11 #Javascript
js防抖函数和节流函数使用场景和实现区别示例分析
Apr 11 #Javascript
js函数柯里化的方法和作用实例分析
Apr 11 #Javascript
js点击事件的执行过程实例分析【冒泡与捕获】
Apr 11 #Javascript
JavaScript运行机制实例分析
Apr 11 #Javascript
js中调用微信的扫描二维码功能的实现代码
Apr 11 #Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
Apr 11 #Javascript
You might like
php读取3389的脚本
2014/05/06 PHP
用PHP写的一个冒泡排序法的函数简单实例
2016/05/26 PHP
PHP微信刮刮卡 附微信接口
2016/07/22 PHP
什么是PHP文件?如何打开PHP文件?
2017/06/27 PHP
查看大图功能代码jquery版
2013/11/05 Javascript
JS保存和删除cookie操作 判断cookie是否存在
2013/11/13 Javascript
JS将所有对象s的属性复制给对象r(原生js+jquery)
2014/01/25 Javascript
jQuery将多条数据插入模态框的示例代码
2014/09/25 Javascript
jQuery使用之设置元素样式用法实例
2015/01/19 Javascript
深入浅析Node.js 事件循环
2015/12/20 Javascript
NodeJS测试框架mocha入门教程
2017/03/28 NodeJs
Three.js利用dat.GUI如何简化试验流程详解
2017/09/26 Javascript
webpack打包多页面的方法
2018/11/30 Javascript
layui表格 返回的数据状态异常的解决方法
2019/09/10 Javascript
vue使用一些外部插件及样式的配置代码
2019/11/18 Javascript
js 数据类型判断的方法
2020/12/03 Javascript
Python MD5文件生成码
2009/01/12 Python
Python实现基本线性数据结构
2016/08/22 Python
Python首次安装后运行报错(0xc000007b)的解决方法
2016/10/18 Python
使用TensorFlow-Slim进行图像分类的实现
2019/12/31 Python
基于Python快速处理PDF表格数据
2020/06/03 Python
python/golang实现循环链表的示例代码
2020/09/14 Python
Django restful framework生成API文档过程详解
2020/11/12 Python
纯css3实现效果超级炫的checkbox复选框和radio单选框
2014/09/01 HTML / CSS
html5 Canvas绘制线条 closePath()实例代码
2012/05/10 HTML / CSS
德国传统玻璃制造商:Cristalica
2018/04/23 全球购物
前台文员我鉴定
2014/01/12 职场文书
残疾人创业典型事迹
2014/02/01 职场文书
项目总经理岗位职责
2014/02/14 职场文书
优秀经理获奖感言
2014/03/04 职场文书
继承公证书
2014/04/09 职场文书
小学作文评语大全
2014/04/21 职场文书
小学生三分钟演讲稿
2014/08/18 职场文书
2015年司法所工作总结
2015/04/27 职场文书
Python办公自动化PPT批量转换操作
2021/09/15 Python
HTML基础详解(下)
2021/10/16 HTML / CSS