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


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图像处理—为矩阵添加常用方法
Dec 27 Javascript
js unicode 编码解析关于数据转换为中文的两种方法
Apr 21 Javascript
jQuery针对各类元素操作基础教程
Aug 29 Javascript
jQuery中的基本选择器用法学习教程
Apr 14 Javascript
DWR中各种java方法的调用
May 04 Javascript
前端面试知识点锦集(JavaScript篇)
Dec 28 Javascript
Node.js中如何合并两个复杂对象详解
Dec 31 Javascript
微信小程序 天气预报开发实例代码源码
Jan 20 Javascript
vue框架搭建之axios使用教程
Jul 11 Javascript
jquery-ui 进度条功能示例【测试可用】
Jul 25 jQuery
js节流防抖应用场景,以及在vue中节流防抖的具体实现操作
Sep 21 Javascript
vue3中provide && inject的使用
Jul 01 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
四月新番又没了,《Re:从零开始的异世界生活》第二季延期至7月播出
2020/05/06 日漫
DOMXML函数笔记
2006/10/09 PHP
PHP 飞信好友免费短信API接口开源版
2010/07/22 PHP
PHP面向对象之旅:深入理解static变量与方法
2014/01/06 PHP
学习YUI.Ext 第三天
2007/03/10 Javascript
jQuery 事件队列调整方法
2009/09/18 Javascript
不同浏览器的怪癖小结
2010/07/11 Javascript
juqery 学习之四 筛选过滤
2010/11/30 Javascript
jQuery EasyUI API 中文文档 - ProgressBar 进度条
2011/09/29 Javascript
使用GruntJS构建Web程序之构建篇
2014/06/04 Javascript
JavaScript检测上传文件大小的方法
2015/07/22 Javascript
在Html中使用Requirejs进行模块化开发实例详解
2016/04/15 Javascript
Bootstrap进度条组件知识详解
2016/05/01 Javascript
jQuery的框架介绍
2016/05/11 Javascript
Node.js包管理器Yarn的入门介绍与安装
2016/10/17 Javascript
浅谈angularjs中响应回车事件
2017/04/24 Javascript
微信小程序实现登录页云层漂浮的动画效果
2017/05/05 Javascript
微信小程序实现收藏与取消收藏切换图片功能
2018/08/03 Javascript
Nodejs封装类似express框架的路由实例详解
2020/01/05 NodeJs
Javascript组合继承方法代码实例解析
2020/04/02 Javascript
vuecli3.x中轻松4步带你使用tinymce的步骤
2020/06/25 Javascript
[37:22]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第一局
2016/02/28 DOTA
Python 使用PIL numpy 实现拼接图片的示例
2018/05/08 Python
python读取指定字节长度的文本方法
2019/08/27 Python
浅谈pytorch池化maxpool2D注意事项
2020/02/18 Python
学习Python爬虫的几点建议
2020/08/05 Python
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
大学自我鉴定
2013/12/20 职场文书
茶叶生产计划书
2014/01/10 职场文书
商务邀请函范文
2014/01/14 职场文书
作弊检讨书
2015/01/27 职场文书
法务专员岗位职责
2015/02/14 职场文书
东京审判观后感
2015/06/01 职场文书
小学生暑假安全保证书
2015/07/13 职场文书
2016春季小学开学寄语
2015/12/03 职场文书
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
2022/12/24 MySQL