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


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如何处理从java后台返回的list
Apr 24 Javascript
js代码验证手机号码和电话号码是否合法
Jul 30 Javascript
JS获取元素多层嵌套思路详解
May 16 Javascript
3种不同的ContextMenu右键菜单实现代码
Nov 03 Javascript
vue做网页开场视频的实例代码
Oct 20 Javascript
基于Vuex无法观察到值变化的解决方法
Mar 01 Javascript
vue 组件高级用法实例详解
Apr 11 Javascript
React优化子组件render的使用
May 12 Javascript
从0到1搭建element后台框架优化篇(打包优化)
May 12 Javascript
JS中的算法与数据结构之列表(List)实例详解
Aug 16 Javascript
JavaScript实现简单的弹窗效果
May 19 Javascript
浅谈vue 多个变量同时赋相同值互相影响
Aug 05 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
德生S2000电路分析
2021/03/02 无线电
php5数字型字符串加解密代码
2008/04/24 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(九)
2014/06/24 PHP
PHP提高编程效率的20个要点
2015/09/23 PHP
php基于Redis消息队列实现的消息推送的方法
2018/11/28 PHP
js event事件的传递与冒泡处理
2009/12/06 Javascript
JavaScript去掉空格的方法集合
2010/12/28 Javascript
jQuery基础框架浅入剖析
2012/12/27 Javascript
分享一则JavaScript滚动条插件源码
2015/03/03 Javascript
jquery插件jquery.confirm弹出确认消息
2015/12/22 Javascript
js和jq使用submit方法无法提交表单的快速解决方法
2016/05/17 Javascript
javascript用正则表达式过滤空格的实现代码
2016/06/14 Javascript
BootstrapTable请求数据时设置超时(timeout)的方法
2017/01/22 Javascript
微信小程序中时间戳和日期的相互转换问题
2018/07/09 Javascript
详解vue2.0模拟后台json数据
2019/05/16 Javascript
微信小程序实现语音识别转文字功能及遇到的坑
2019/08/02 Javascript
layui 动态设置checbox 选中状态的例子
2019/09/02 Javascript
js实现滚动条自动滚动
2020/12/13 Javascript
python中pygame模块用法实例
2014/10/09 Python
在Python中处理日期和时间的基本知识点整理汇总
2015/05/22 Python
Python实现简单的代理服务器
2015/07/25 Python
Python设计模式之命令模式简单示例
2018/01/10 Python
python把1变成01的步骤总结
2019/02/27 Python
python使用matplotlib画柱状图、散点图
2019/03/18 Python
Django命名URL和反向解析URL实现解析
2019/08/09 Python
python3实现往mysql中插入datetime类型的数据
2020/03/02 Python
Python爬虫爬取电影票房数据及图表展示操作示例
2020/03/27 Python
Python内存泄漏和内存溢出的解决方案
2020/09/26 Python
英语专业学生的自我评价
2013/12/30 职场文书
社区敬老月活动实施方案
2014/02/17 职场文书
亲子拓展活动方案
2014/02/20 职场文书
导游词400字
2015/02/13 职场文书
太空授课观后感
2015/06/17 职场文书
医务人员岗前培训心得体会
2016/01/08 职场文书
Nginx进程调度问题详解
2021/09/25 Servers
十大动画制作软件,Adobe产品上榜两款,第一是行业标准软件
2022/03/18 杂记