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


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 相关文章推荐
从父页面读取和操作iframe中内容方法
Jul 25 Javascript
jQuery级联操作绑定事件实例
Sep 02 Javascript
javascript封装的sqlite操作类实例
Jul 17 Javascript
JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
Dec 26 Javascript
简单谈谈JS数组中的indexOf方法
Oct 13 Javascript
Javascript 创建类并动态添加属性及方法的简单实现
Oct 20 Javascript
探索Vue高阶组件的使用
Jan 08 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
Dec 10 Javascript
vue如何实现动态加载脚本
Feb 05 Javascript
vue-cli设置css不生效的解决方法
Feb 07 Javascript
通过js实现压缩图片上传功能
Feb 25 Javascript
Paypal支付不完全指北
Jun 04 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
php使用Cookie实现和用户会话的方法
2015/01/21 PHP
PHP获取QQ达人QQ信息的方法
2015/03/05 PHP
详解php curl带有csrf-token验证模拟提交方法
2018/04/18 PHP
Microsoft Ajax Minifier 压缩javascript的方法
2010/03/05 Javascript
Javascript 面向对象(一)(共有方法,私有方法,特权方法)
2012/05/23 Javascript
javascript闭包入门示例
2014/04/30 Javascript
jquery文本框中的事件应用以输入邮箱为例
2014/05/06 Javascript
Angular 根据 service 的状态更新 directive
2016/04/03 Javascript
第三章之Bootstrap 表格与按钮功能
2016/04/25 Javascript
功能强大的Bootstrap使用手册(一)
2016/08/02 Javascript
js以分隔符分隔数组中的元素并转换为字符串的方法
2016/11/16 Javascript
JavaScript 过滤关键字
2017/03/20 Javascript
vue2.0实战之基础入门(1)
2017/03/27 Javascript
node中koa中间件机制详解
2017/08/22 Javascript
JS实现静态页面搜索并高亮显示功能完整示例
2017/09/19 Javascript
vue使用keep-alive实现数据缓存不刷新
2017/10/21 Javascript
JavaScript封装的常用工具类库bee.js用法详解【经典类库】
2018/09/03 Javascript
JS/HTML5游戏常用算法之碰撞检测 像素检测算法实例详解
2018/12/12 Javascript
Python3生成手写体数字方法
2018/01/30 Python
Python封装原理与实现方法详解
2018/08/28 Python
python中的数据结构比较
2019/05/13 Python
python实现音乐播放器 python实现花框音乐盒子
2020/02/25 Python
Keras自动下载的数据集/模型存放位置介绍
2020/06/19 Python
EntityManager都有哪些方法
2013/11/01 面试题
UNIX文件系统分类
2014/11/11 面试题
室内趣味活动方案
2014/08/24 职场文书
2014年小学生迎国庆65周年演讲稿
2014/09/27 职场文书
领导工作表现评语
2015/01/04 职场文书
2015年重阳节活动主持词
2015/07/30 职场文书
干部外出学习心得体会
2016/01/18 职场文书
学校2016年九九重阳节活动总结
2016/04/01 职场文书
【超详细】八大排序算法的各项比较以及各自特点
2021/03/31 Python
python numpy中setdiff1d的用法说明
2021/04/22 Python
解决Golang中ResponseWriter的一个坑
2021/04/27 Golang
Python打包为exe详细教程
2021/05/18 Python
动画《新网球王子 U-17 WORLD CUP》希腊队PV公开
2022/04/02 日漫