php怎么做到视频上下滑动播放,微信小程序仿抖音视频之整屏上下切换功能的实现代码...

效果演示:

0196c1ed56fcb5e52a76187177e704d1.gif

WXML:

{{index}}

WXSS:

.video_box{width: 100%;height: auto;position: fixed;top:0;bottom: 0;background-color: #000;}

.video_list{width: 100%;height: 100vh;position: relative;}

.video_list video{position: absolute;top:50%;margin-top:-30vw; width: 100%;height:56vw;padding: 0;}

Page({

/**

* 页面的初始数据

*/

data: {

video_list:[

{video_src:'https://stream7.iqilu.com/10339/upload_transcode/202002/18/20200218093206z8V1JuPlpe.mp4'},

{video_src:'https://stream7.iqilu.com/10339/article/202002/17/c292033ef110de9f42d7d539fe0423cf.mp4'},

{video_src:'https://stream7.iqilu.com/10339/upload_transcode/202002/18/20200218025702PSiVKDB5ap.mp4'},

{video_src:'https://stream7.iqilu.com/10339/article/202002/18/2fca1c77730e54c7b500573c2437003f.mp4'},

{video_src:'https://stream7.iqilu.com/10339/upload_transcode/202002/18/20200218093206z8V1JuPlpe.mp4'},

{video_src:'https://stream7.iqilu.com/10339/upload_transcode/202002/18/20200218114723HDu3hhxqIT.mp4'},

{video_src:'https://stream7.iqilu.com/10339/upload_transcode/202002/18/20200218025702PSiVKDB5ap.mp4'},

{video_src:'https://stream7.iqilu.com/10339/article/202002/17/c292033ef110de9f42d7d539fe0423cf.mp4'},

{video_src:'https://stream7.iqilu.com/10339/upload_transcode/202002/18/20200218093206z8V1JuPlpe.mp4'},

{video_src:'https://stream7.iqilu.com/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.top(difference - (n*this.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.top(-(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.top(-(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;

}

}

},

})

总结

到此这篇关于微信小程序仿抖音视频之整屏上下切换功能的实现代码的文章就介绍到这了,更多相关微信小程序抖音视频整屏切换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值