网络编程 发布日期:2025/11/2 浏览次数:1
效果演示:
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="/UploadFiles/2021-04-02/{{item.video_src}}">
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 "color: #ff0000">总结