更新

现在已经更新了github地址和效果gif,可在文章最后查看。如果我的代码对你有用,请帮我随手star一下。

需求

最近在项目中需要加一个功能,在小程序中将已有的短视频功能,按照抖音的方式来浏览,整屏,可上下滑动切换视频,并添加上滑下滑的动画。

思路

1.在video标签上添加时间监听。 2.如果1无法成功,就在video上面罩一层 cover-view,在cover-view上添加时间监听。 3.如果上面两种方法都不行,用小程序的onPageScroll页面处理函数来监听页面的滚动。 4.上述三种方法都不行的话,用canvas在video上面罩一层,监听滚动事件。

尝试

现在video标签上添加了触摸事件的监听,但是无法成功监听到触摸事件。 因为video 是原生组件,层级较高,所以尝试在上面罩一层cover-view,并监听滚动事件,但是同样无法监听。

前面两种方法不行,我就采用了onPageScroll来监听页面是否发生滚动。这个方法会拿到当前页面在垂直方向已滚动的距离。scrollindex用来控制滚动,totalNum是滚动的总数,部分代码如下

在ios上可以满足需求,能上下滚动,也能加上动画,但是在安卓上却不能动,尝试着在页面json文件中配置滚动相关,但都没办法,所以这个方法也不行了。

最后只有canvas这一个办法了,在video组件上面定位一个canvas,在上面添加时间监听,这是发现成功了,可以在控制台看到打印出来的监听 console。

实现

wxml:下面是wxml代码,主要思路就是让video宽高等于屏幕,点赞评论分享等功能,用cover-view定位到视频上方,在将canvas定位到video上面滚动时滚动的是封面图案,video标签只有一个,滚动更改video的src。

wxss:都是一些定位相关的样式没有特殊的样式就不贴图了。不过做的时候这里有个坑,产品希望添加无限的向下滑动视频,可以无限加载,所以最开始我才用的是animation动画,对每一屏根据手指向上或者向下添加动画,这样做的话就无法做到,后来发现可以使用小程序的api,wx.createAnimation()在js中实现。

js:onload的时候this.animation = wx.createAnimation();用于切换时创建动画。

需要监听的滚动事件

js主要做的是判断滚动方向,给wxml通过微信提供的animation方法来动态添加动画,这样就可以实现无限加载的需求了。scrollTop的作用是用来调整video标签位置,因为现在滚动的时候添加滚动的事视频的封面图不是视频本身,需要隐藏视频,假如用wx:if;哎控制的话,会导致视频隐藏在展现之后无法监听之前添加的事件。

效果

在真机上可以生效,在手机上录了视频不知道怎么传上来,转gif也没找到在mac怎么转。。。

更新上来了gif,不过gif感觉稍微有点卡顿,没手机上流畅。手机ios也是比安卓的流畅很多。但是都比这个图片流畅。。。而且现在视频地址都挂了,所以一直转圈缓冲,没办法播放只剩下这个图片了,正常缓冲结束后是会播放的。

最后

弄了好久弄出来的,真机和模拟器的效果差异很大,最好在真机测试。目前也不知道有没有更好的办法,菜鸟前端一个~

补充

github地址:github.com/xuguoyii/wx…

转载于:https://juejin.im/post/5bea9075f265da611f073ce3

小程序类似抖音视频整屏切换相关推荐

  1. 微信小程序 仿抖音视频--整屏上下切换功能

    效果演示: WXML: <view class="video_box"><view bindtouchend="touchEnd" id=&q ...

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

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

  3. 微信小程序实现抖音视频效果

    当我们进行开发的时候可能会遇到需要实现抖音视频效果的需求,并且网上该效果的开源代码少,找到的开源代码代码量大,很难进行二次开发 对此我将自己的代码进行简化,仅留下可动性高的代码模块 以上是实现效果与此 ...

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

    Page({ /** * 页面的初始数据 */ data: { video_list:[ {video_src:}, {video_src:}, {video_src:}, {video_src:}, ...

  5. uniapp 小程序实现抖音视频效果

    效果图: <template><view><view class="uni-padding-wrap"><view class=" ...

  6. 小程序模仿抖音上下滑动视频

    前景知识 要实现小程序类似抖音上下滑动预览视频,就我了解的,方案可以分为两种 1.利用原生组件swiper(据说很卡,我也试过,好像是有点不流畅) 2.自己实现一个上下滑动效果(只需要监听一组事件,判 ...

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

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

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

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

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

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

最新文章

  1. ubuntu14.04初体会
  2. 《C#图解教程》读书笔记之四:类和继承
  3. .NET设计模式(5):工厂方法模式(Factory Method)
  4. POJ - 3254 Corn Fields(状压dp)
  5. XML和HTML的不同点
  6. 分析容灾备份建设需求
  7. django使用mysql事务处理_Django中MySQL事务的使用
  8. oracle备份能备份索引吗,ORACLE会使索引失效的条件
  9. Linux块层技术全面剖析-v0.1
  10. 华为P50系列外观正式官宣:双圆形后置相机模组实锤
  11. ftp 服务器创建访问连接抱错_如何用固定IP连接FTP服务器?
  12. 计算机dos全套教学视频,梦想之路DOS命令系列培训教程(视频打包)
  13. java单例调用_java单例模式
  14. python初学者-计算小于100的最大素数
  15. 计算机表格里的隐藏怎么弄出来怎么办,电脑屏幕的excel表格最后一行看不到怎么办《excel表隐藏的表格怎么展开》...
  16. Andriod 实现一个类微信聊天界面 (二)
  17. word 去除页眉默认的横线及python操作分析
  18. mysql tcp性能优化_MySQL性能优化: 使用pt-query-digest分析慢查询日志
  19. SPSS Modeler 建模前准备—数据平衡与特征选择(指南 第十一章)
  20. 抓包分析,一条Linux命令实现路由器自动登录深大校园网认证(Drcom Pt版)

热门文章

  1. 计算机二级web程序设计习题,2015年计算机二级《Web程序设计》习题及答案(5)
  2. 剑指offer:31-32记录(4道)
  3. 《Head First设计模式》第八章笔记-模板方法模式
  4. 《Head First设计模式》第二章笔记 观察者模式
  5. pytorch学习入门 (二) Variable(变量)
  6. 数据结构和算法(01)--- 算法复杂度
  7. 《Python Cookbook 3rd》笔记(5.10):内存映射的二进制文件
  8. Tomcat无需输入项目名,直接用域名访问项目
  9. Redis整合springboot实现消息队列
  10. 2000年考研英语阅读理解文章三