微信小程序仿抖音视频之整屏上下切换功能的实
网络编程 2021-07-04 15:03www.168986.cn编程入门
这篇文章主要介绍了微信小程序仿抖音视频之整屏上下切换功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
效果演示
WXML
<view class="video_box"> <view bindtouchend="touchEnd" id="myVideo{{index}}" animation="{{animation}}" bindtouchstart="touchStart" bindtouchmove="touchMove" class="video_list" wx:for="{{video_list}}" data-index="{{index}}" wx:key="index" > <text style="color:red;font-size:30px;display:block;">{{index}}</text> <video custom-cache="{{false}}" src="{{item.video_src}}" vslide-gesture-in-fullscreen="{{false}}" direction = '{{0}}' enable-progress-gesture="{{false}}" show-fullscreen-btn="{{false}}" object-fit="cover"></video> </view> </view>
WXSS
.video_box{width: 100%;height: auto;position: fixed;:0;bottom: 0;background-color: #000;} .video_list{width: 100%;height: 100vh;position: relative;} .video_list video{position: absolute;:50%;margin-:-30vw; width: 100%;height:56vw;padding: 0;}
Page({ / 页面的初始数据 / data: { video_list:[ {video_src:'https://stream7.iqilu./10339/upload_transcode/202002/18/20200218093206z8V1JuPlpe.mp4'}, {video_src:'https://stream7.iqilu./10339/article/202002/17/c292033ef110de9f42d7d539fe0423cf.mp4'}, {video_src:'https://stream7.iqilu./10339/upload_transcode/202002/18/20200218025702PSiVKDB5ap.mp4'}, {video_src:'https://stream7.iqilu./10339/article/202002/18/2fca1c77730e54c7b500573c2437003f.mp4'}, {video_src:'https://stream7.iqilu./10339/upload_transcode/202002/18/20200218093206z8V1JuPlpe.mp4'}, {video_src:'https://stream7.iqilu./10339/upload_transcode/202002/18/20200218114723HDu3hhxqIT.mp4'}, {video_src:'https://stream7.iqilu./10339/upload_transcode/202002/18/20200218025702PSiVKDB5ap.mp4'}, {video_src:'https://stream7.iqilu./10339/article/202002/17/c292033ef110de9f42d7d539fe0423cf.mp4'}, {video_src:'https://stream7.iqilu./10339/upload_transcode/202002/18/20200218093206z8V1JuPlpe.mp4'}, {video_src:'https://stream7.iqilu./10339/upload_transcode/202002/18/20200218114723HDu3hhxqIT.mp4'}, ], pageY:'', // 触摸起始高度坐标 animation:'', // 视频划动动画 up_stroke:false,// ture:上划;false下划 difference:'', // 拖动的距离 windowHeight:'',// 屏幕高度 }, / 生命周期函数--监听页面加载 / onLoad: function (options) { // 赋值屏幕高度、 this.setData({ windowHeight:wx.getSystemInfoSync().windowHeight }) }, // 划动起始坐标方法 touchStart(e){ // 开始坐标 this.setData({ pageY:e.touches[0].pageY, }) }, // 划动过程坐标方法 touchMove(e){ let n = e.currentTarget.dataset.index; // 触摸的第几个序号 let difference = e.touches[0].pageY - this.data.pageY; // 移动后和起始值的差值 if(this.is_continue(n,difference)){ // 判断是否到底 return; } // 划动动画 ------------------------------------- var animation = wx.createAnimation({ // 移动动效 duration: 0, }); animation.(difference - (nthis.data.windowHeight)).step() this.setData({ animation: animation.export(), // 动画 up_stroke:difference > 0 ? false : true, // 是否上划, difference:difference, // 拖动的距离 }) }, // 划动结束坐标方法 touchEnd(e){ let n = e.currentTarget.dataset.index; let difference = this.data.difference; // 拖动的距离 if(this.is_continue(n,difference)){ return; } const windowHeight = this.data.windowHeight; // 屏幕高度 let that = this; // 根据id获取点击元素距顶部高度 var query = wx.createSelectorQuery(); let id = '#' + e.currentTarget.id; query.select(id).boundingClientRect(function (rect) { // 获取高度 if(Math.abs(difference) <= windowHeight /7){ // 小于1/7回原位置 --------------------------- var animation = wx.createAnimation({ // 移动动效 duration: 100, }); animation.(-(n windowHeight)).step() that.setData({ animation: animation.export(), up_stroke:false, // 重置划动状态 difference:0, // 重置划动距离 }) }else{ // 大于1/4,移至拖动的下一个视频 -------------------------------- var animation = wx.createAnimation({ // 移动动效 duration: 200, }); that.data.up_stroke ? n++ : n--; // 上划n+1 下划n-1 animation.(-(n windowHeight)).step() that.setData({ animation: animation.export(), up_stroke:false, // 重置划动状态 difference:0, // 重置划动距离 }) } }).exec(); }, // 判断是否到底 is_continue(n,difference){ if(difference < 0){ // 上划 if(n == this.data.video_list.length - 1){ // 一个视频,提示到底 if(difference < -20){ wx.showToast({ title: '已经到底了~~', icon:'none', duration:1000 }) } return true; } }else{ if(n == 0){ if(difference > 20){ wx.showToast({ title: '上面没有了~~', icon:'none', duration:1000 }) } return true; } } }, })
到此这篇关于微信小程序仿抖音视频之整屏上下切换功能的实现代码的文章就介绍到这了,更多相关微信小程序抖音视频整屏切换内容请搜索狼蚁SEO以前的文章或继续浏览狼蚁网站SEO优化的相关文章希望大家以后多多支持狼蚁SEO!
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程