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


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 相关文章推荐
多个表单中如何获得这个文件上传的网址实现js代码
Mar 25 Javascript
JavaScript 创建运动框架的实现代码
May 08 Javascript
基于mouseout和mouseover等类似事件的冒泡问题解决方法
Nov 18 Javascript
浅析JavaScript原型继承的陷阱
Dec 03 Javascript
js实现div闪烁原理及实现代码
Jun 24 Javascript
JQuery插件ajaxfileupload.js异步上传文件实例
May 19 Javascript
jquery代码实现多选、不同分享功能
Jul 31 Javascript
js阻止移动端页面滚动的两种方法
Jan 25 Javascript
js防刷新的倒计时代码 js倒计时代码
Sep 06 Javascript
vue路由传参三种基本方式详解
Dec 09 Javascript
javascript实现放大镜功能
Dec 09 Javascript
vue项目如何打包之项目打包优化(让打包的js文件变小)
Apr 30 Vue.js
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
收音机发烧友应当熟知的100条知识
2021/03/02 无线电
PHP编程中八种常见的文件操作方式
2006/11/19 PHP
用PHP ob_start()控制浏览器cache、生成html实现代码
2010/02/16 PHP
php中namespace use用法实例分析
2016/01/22 PHP
php的闭包(Closure)匿名函数初探
2016/02/14 PHP
javaScript 关闭浏览器 (不弹出提示框)
2010/01/31 Javascript
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
JavaScript三元运算符的多种使用技巧
2015/04/16 Javascript
Jquery 垂直多级手风琴菜单附源码下载
2015/11/17 Javascript
AngularJs Understanding the Model Component
2016/09/02 Javascript
微信小程序tabbar不显示解决办法
2017/06/08 Javascript
在 Node.js 中使用原生 ES 模块方法解析
2017/09/19 Javascript
vue.js实现只弹一次弹框
2018/01/29 Javascript
JS数组中对象去重操作示例
2019/06/04 Javascript
json数据格式常见操作示例
2019/06/13 Javascript
Layer+Echarts构建弹出层折线图的方法
2019/09/25 Javascript
react实现移动端下拉菜单的示例代码
2020/01/16 Javascript
vue项目中使用bpmn为节点添加颜色的方法
2020/04/30 Javascript
[39:02]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs VGJ.T
2018/04/01 DOTA
python socket网络编程步骤详解(socket套接字使用)
2013/12/06 Python
Python中的引用和拷贝浅析
2014/11/22 Python
python爬虫实例详解
2018/06/19 Python
python实现美团订单推送到测试环境,提供便利操作示例
2019/08/09 Python
浅谈matplotlib.pyplot与axes的关系
2020/03/06 Python
用Python 爬取猫眼电影数据分析《无名之辈》
2020/07/24 Python
python 实现socket服务端并发的四种方式
2020/12/14 Python
CSS Grid布局教程之网格单元格布局
2014/12/30 HTML / CSS
HTML5+WebSocket实现多文件同时上传的实例
2016/12/29 HTML / CSS
ESDlife健康生活易:身体检查预订、搜寻及比较
2019/05/10 全球购物
广告传媒专业应届生求职信
2014/03/01 职场文书
关于青春的演讲稿三分钟
2014/08/22 职场文书
行政专员岗位职责范本
2014/08/26 职场文书
2014国庆节标语口号
2014/09/19 职场文书
那些美到让人窒息的诗句,值得你收藏!
2019/08/20 职场文书
基于python的matplotlib制作双Y轴图
2021/04/20 Python