Page({

/**

* 页面的初始数据

*/

data: {

video_list:[

{video_src:},

{video_src:},

{video_src:},

{video_src:},

{video_src:},

{video_src:},

{video_src:},

{video_src:},

{video_src:},

{video_src:},

],

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;

}

}

},

})

android仿抖音上下切换视频,微信小程序仿抖音视频之整屏上下切换功能的实现代码...相关推荐

  1. php 仿美团切换城市,微信小程序仿美团城市选择的实现

    这篇文章主要为大家详细介绍了微信小程序仿美团城市选择,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了微信小程序城市选择器,供大家参考,具体内容如下 代码很简单. var cit ...

  2. 到家服务公司php源码,微信小程序-仿五洲到家商城源码

    微信小程序-仿五洲到家商城源码 微信小程序仿五洲到家商城源码是一款精仿五洲到家app界面的小程序源码,适用于各类小程序商城系统,功能及模块均值得借鉴! 对应功能模块 > * 首页(定位成功情况且 ...

  3. 微信小程序仿抖音上下滑动整屏切换视频

    微信小程序仿抖音上下滑动整屏切换视频 使用官网上面的扩展组件 官方使用的方式: 可结合自己业务修改: 使用官网上面的扩展组件 https://developers.weixin.qq.com/mini ...

  4. 微信小程序实现抖音切换视频效果

    微信小程序实现抖音切换视频效果 思路: 使用微信小程序的swiper组件,使其竖向滑动 分页加载,每次加载3个视频,当滑动到只剩1个视频时加载下一页 问题: 加载多个视频时,多个视频会同时播放 效果图 ...

  5. 微信小程序仿抖音视频

    微信小程序仿抖音视频 使用轮播图实现视频滑动效果. wxml 部分 <view class="video-contain"><!-- 自定义头部 -->&l ...

  6. 17_微信小程序之抖音微视无限滑动视频列表自定义组件编写

    微信小程序之抖音微视无限滑动视频列表自定义组件编写 一.先上效果图 看到上面,你可能首先会想到,使用swiper然后将swiper的circular设置为true,那么,想象一下,假如视频很多的情况下 ...

  7. 微信小程序和抖音小程序的区别?如何选择?

    随着5G的到来,电商向多元化新型电商的转型也已成时代必然.2020年,当我们的Vlog.自媒体行业风生水起时,依托第三方的电商平台销售模式已经逐渐难以满足新型电商的应用场景,例如微信的私域流量.抖音对 ...

  8. 如何从抖音引流至微信小程序?

    抖音作为目前流量变现超级快的平台,没有之一! 对于一些已经或想要在抖音推广自己的微信小程序的朋友,肯定非常迫切的想要实现能够在抖音中,通过点击就能跳转到自己的微信小程序中. 那么怎么实现从抖音跳转到微 ...

  9. 从微信小程序到抖音小程序:转换指南

    抖音小程序是一种新兴的小程序平台,与微信小程序类似,都是基于小程序框架的开发,不过两者的开发环境和API有所不同.如果你已经开发了一款微信小程序,想要将其转换为抖音小程序,可以按照以下步骤进行: 1. ...

最新文章

  1. java after方法_spring AOP的After增强实现方法实例分析
  2. 最常用git命令汇总(参考列表)
  3. python文件管理_超值的Python文件操作与管理!
  4. linux unix域socket_Socket通信原理
  5. python中pd是什么意思_python怎么用pd导入xlsx
  6. C#写文本写Csv文件操作
  7. python和selenium的关系_selenium之python源码解读-webdriver继承关系
  8. python函数名的应用、闭包和迭代器
  9. 国产卫星高分四号(GF4)预处理(辐射定标)
  10. 奥维kml文件制作工具_如何将平面控制点导入Google Earth、奥维互动地图及手机奥维互动地图APP里面?...
  11. VM14安装CentOS7并配置网络
  12. python共存_多版本Python共存的配置方法
  13. stm32f103c8t6的中文字库
  14. latex 论文算法编辑
  15. 真正的程序员的工作与生活应该是这样的
  16. 学术期刊的 LaTeX整理合集(持续更新中)
  17. java实现qq空间模块_最新免费QQ空间模块个性边框代码
  18. [WP/CTFshow]XSS Web316-333
  19. matlab符号矩阵入门
  20. 使用NodeJS和Angular构建Twitter客户端

热门文章

  1. Windows中查看PowerShell版本和virbox版本,vagrant 版本
  2. 降噪蓝牙耳机什么牌子的好?降噪蓝牙耳机评测
  3. CAD版本怎么转化?这里有好用的小妙招
  4. 关于Samba服务多用户挂载的权限设置------Samba Multiuser
  5. TOPSIS法教你如何帮父母选手机,帮父母选什么手机!
  6. 测试适合什么颜色衣服的软件,测试 | 超准的颜色测试!一语道破你最适合穿什么颜色的衣服!...
  7. urlparse解析url
  8. 外边火热的摆地摊赚钱方案全攻略+送地摊解说词
  9. 一些触动心灵的英文短句,句句有格调,每天都要读一遍!
  10. Spark开发-Spark内存溢出原因以及解决方式