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


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 相关文章推荐
Javascript的IE和Firefox兼容性汇编(zz)
Feb 02 Javascript
javascript 面向对象全新理练之继承与多态
Dec 03 Javascript
JavaScript基础篇之变量作用域、传值、传址的简单介绍与实例
Jun 29 Javascript
Jquery模仿Baidu、Google搜索时自动补充搜索结果提示
Dec 26 Javascript
Iframe实现跨浏览器自适应高度解决方法
Sep 02 Javascript
javascript通过元素id和name直接取得元素的方法
Apr 28 Javascript
JS函数定义方式的区别介绍
Mar 22 Javascript
JavaScript基础语法之js表达式
Jun 07 Javascript
AngularJS实现的输入框字数限制提醒功能示例
Oct 26 Javascript
在vue项目中,使用axios跨域处理
Mar 07 Javascript
深入理解Promise.all
Aug 08 Javascript
解决layui使用layui-icon出现默认图标的问题
Sep 11 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
解析isset与is_null的区别
2013/08/09 PHP
php中数据库连接方式pdo和mysqli对比分析
2015/02/25 PHP
php flush无效,IIS7下php实时输出的方法
2016/08/25 PHP
PHP7如何开启Opcode打造强悍性能详解
2018/05/11 PHP
PHP实时统计中文字数和区别
2019/02/28 PHP
ThinkPHP3.1.2 使用cli命令行模式运行的方法
2020/04/14 PHP
JavaScript this 深入理解
2009/07/30 Javascript
为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能
2009/11/24 Javascript
Javascript解决常见浏览器兼容问题的12种方法
2010/01/04 Javascript
javascript中使用css需要注意的地方小结
2010/09/01 Javascript
jquery一句话全选/取消全选
2011/03/01 Javascript
一款Jquery 分页插件的改造方法(服务器端分页)
2011/07/11 Javascript
高性能JavaScript模板引擎实现原理详解
2015/02/05 Javascript
JavaScript测试工具之Karma-Jasmine的安装和使用详解
2015/12/03 Javascript
javascript事件的传播基础实例讲解(35)
2017/02/14 Javascript
说说Vue.js中的functional函数化组件的使用
2019/02/12 Javascript
详解vue-cli+element-ui树形表格(多级表格折腾小计)
2019/04/17 Javascript
ES6顶层对象、global对象实例分析
2019/06/14 Javascript
详解小程序BackgroundAudioManager踩坑之旅
2019/12/08 Javascript
如何使用Jquery动态生成二级选项列表
2020/02/06 jQuery
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
Python多线程同步Lock、RLock、Semaphore、Event实例
2014/11/21 Python
python通过自定义isnumber函数判断字符串是否为数字的方法
2015/04/23 Python
基于Django模板中的数字自增(详解)
2017/09/05 Python
shell命令行,一键创建 python 模板文件脚本方法
2018/03/20 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
2018/05/24 Python
python基础学习之如何对元组各个元素进行命名详解
2018/07/12 Python
Python解决两个整数相除只得到整数部分的实例
2018/11/10 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
2020/01/18 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
2020/02/28 Python
详解python日志输出使用配置文件格式
2021/02/10 Python
迪拜领先运动补剂零售品牌中文站:Sporter商城
2019/08/20 全球购物
英国时尚和家居用品零售商:Matalan
2021/02/28 全球购物
《手指教学》反思
2014/02/14 职场文书
期末个人总结范文
2015/02/13 职场文书
高效笔记技巧分享:学会这些让你不再困扰
2019/09/04 职场文书