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


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测试题练习代码
Oct 10 Javascript
密码强度检测效果实现原理与代码
Jan 04 Javascript
SuperSlide2实现图片滚动特效
Jun 20 Javascript
jQuery插件slides实现无缝轮播图特效
Apr 17 Javascript
js实现图片缓慢放大缩小效果
Aug 02 Javascript
详解用webpack2.0构建vue2.0超详细精简版
Apr 05 Javascript
JS实现图片点击后出现模态框效果
May 03 Javascript
AngularJS中下拉框的高级用法示例
Oct 11 Javascript
jquery根据name取得select选中的值实例(超简单)
Jan 25 jQuery
微信小程序实现星星评价效果
Nov 02 Javascript
layer.open 子页面弹出层向父页面传输数据的例子
Sep 26 Javascript
使用Node.js实现base64和png文件相互转换的方法
Mar 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
常用表单验证类,有了这个,一般的验证就都齐了。
2006/12/06 PHP
深入解析phpCB批量转换的代码示例
2013/06/27 PHP
ThinkPHP模型详解
2015/07/27 PHP
php curl获取到json对象并转成数组array的方法
2018/05/31 PHP
php+mysql实现的无限分类方法类定义与使用示例
2020/05/27 PHP
javascript setTimeout和setInterval 的区别
2009/12/08 Javascript
基于jquery的15款幻灯片插件
2011/04/10 Javascript
JS构建页面的DOM节点结构的实现代码
2011/12/09 Javascript
兼容FF和IE的动态table示例自写
2013/10/21 Javascript
做好七件事帮你提升jQuery的性能
2014/02/06 Javascript
easyui datagrid 键盘上下控制选中行示例
2014/03/31 Javascript
基于Javascript实现弹出页面效果
2016/01/01 Javascript
jQuery 3.0中存在问题及解决办法
2016/07/15 Javascript
Bootstrap3多级下拉菜单
2017/02/24 Javascript
深入浅析python中的多进程、多线程、协程
2016/06/22 Python
Python全局变量与局部变量区别及用法分析
2018/09/03 Python
修改默认的pip版本为对应python2.7的方法
2018/11/06 Python
解决Numpy中sum函数求和结果维度的问题
2019/12/06 Python
Python二次规划和线性规划使用实例
2019/12/09 Python
将python文件打包exe独立运行程序方法详解
2020/02/12 Python
浅谈Python的方法解析顺序(MRO)
2020/03/05 Python
jupyter notebook更换皮肤主题的实现
2021/01/07 Python
html5 sessionStorage会话存储_动力节点Java学院整理
2017/07/06 HTML / CSS
英国儿童家具专卖店:GLTC
2016/09/24 全球购物
联想阿根廷官方网站:Lenovo Argentina
2019/10/14 全球购物
澳大利亚领先的亚麻品牌:Bed Threads
2019/12/16 全球购物
在C语言中实现抽象数据类型什么方法最好
2014/06/26 面试题
《小小雨点》教学反思
2014/02/18 职场文书
婚前协议书怎么写
2014/04/15 职场文书
个人安全生产责任书
2014/07/28 职场文书
党员志愿者活动方案
2014/08/28 职场文书
公司法定代表人授权委托书
2014/09/29 职场文书
2014年派出所工作总结
2014/11/21 职场文书
2016年过年放假安排通知
2015/08/18 职场文书
谢师宴家长答谢词
2015/09/30 职场文书
详解Alibaba Java诊断工具Arthas查看Dubbo动态代理类
2022/04/08 Java/Android