首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

仿抖音视频全屏播放&滑动切换

1 前言 随着移动技术的快速迭代,数据流量费用的快速下降,视频、直播正成为全民的媒体盛宴,司必然也不会缺席此次盛宴,这里讲述的是通过h5实现仿抖音视频全屏播放&滑动切换的效果,供司直播鉴定回放视频使用...-- 一些除开视频外的点赞信息等 --> 复制代码 3.2 自动切换动画实现 js实现 PK CSS实现 在用户触摸结束后,如果达到切换条件,则需要切换到下一个视频,需要切换动画...,如果需要进入下一个视频,则将通过isMove参数开启动画,然后通过修改translateY参数进行切换。...同时在判断动画结束时间这块,本实例使用了setTimeout实现,该操作是不准确的,建议使用transitionend事件进行实现。...4 各类问题 在实现的时候的各种问题,欢迎吐槽 4.1 视频全屏 据MDN介绍: 使用提供的API,让一个元素与其子元素,可以占据整个屏幕,并在此期间,从屏幕上隐藏所有的浏览器用户界面以及其他应用。

4K20

优化了进度条,页面性能竟提高了70%

在梳理的过程中,看到了有个进度条组件写的非常好,这又想起刚开始学前端时写的进度条的代码,跟这个比起来真的差距太大了(大部分的初学者应该都想不到,而且第一次家实习公司带的mentor亦是如此)。...进度条随着视频的长度而进行增长,视频暂停,进度条动画也会随之暂停 接下来看看大部分人是怎么写的,为什么说思路和性能不好。...0 : 1) } // 动画结束时触发的事件 const end = () => { setCount(count + 1) // 播放次数 +1...'replay' : 'play'}` }} onAnimationEnd={end} // 动画结束时的事件...: paused; } 我们设置了两个@keyframes动画是为了在使进度条重新播放时可以做一个切换,即点击 “重播” 时,直接切换到另一个动画,就可以实现进度条从0开始递增 同时我们还设置了两个类名的样式

77730
您找到你想要的搜索结果了吗?
是的
没有找到

优化了进度条,页面性能竟提高了70%

在梳理的过程中,看到了有个进度条组件写的非常好,这又想起刚开始学前端时写的进度条的代码,跟这个比起来真的差距太大了(大部分的初学者应该都想不到,而且第一次家实习公司带的mentor亦是如此)。...: 进度条随着视频的长度而进行增长,视频暂停,进度条动画也会随之暂停 接下来看看大部分人是怎么写的,为什么说思路和性能不好。...0 : 1) } // 动画结束时触发的事件 const end = () => { setCount(count + 1) // 播放次数 +1...'replay' : 'play'}` }} onAnimationEnd={end} // 动画结束时的事件...: paused; } 我们设置了两个@keyframes动画是为了在使进度条重新播放时可以做一个切换,即点击 “重播” 时,直接切换到另一个动画,就可以实现进度条从0开始递增 同时我们还设置了两个类名的样式

88520

优化了进度条,页面性能竟提高了70%

在梳理的过程中,看到了有个进度条组件写的非常好,这又想起刚开始学前端时写的进度条的代码,跟这个比起来真的差距太大了(大部分的初学者应该都想不到,而且第一次实习的公司带的mentor亦是如此)。...,如图中底部的箭头所示: 进度条随着视频的长度而进行增长,视频暂停,进度条动画也会随之暂停 接下来看看大部分人是怎么写的,为什么说思路和性能不好。...0 : 1) } // 动画结束时触发的事件 const end = () => { setCount(count + 1) // 播放次数 +1...'replay' : 'play'}` }} onAnimationEnd={end} // 动画结束时的事件...: paused; } 我们设置了两个@keyframes动画是为了在使进度条重新播放时可以做一个切换,即点击 "重播" 时,直接切换到另一个动画,就可以实现进度条从0开始递增 同时我们还设置了两个类名的样式

1K40

Android 进阶解密笔记-插件化

所以动画不应该在这里初始化,因为看不到…… onStart:start表示启动,这是Activity生命周期的第二个方法。...此时Activity已经可见了,但是还没出现在前台,我们还看不到,无法与Activity交互。...**从生命周期图中发现可以在这快速重启,但这种情况其实很罕见,比如用户切到下一个Activity的途中按back键快速得回来。...onRestart:restart表示重新开始,Activity在这时可见,当用户按Home键切换到桌面后又回来或者从后一个Activity回前一个Activity就会触发这个方法。...第一种情况我们无法保证什么时候发生,系统根据资源紧张程度去调度;第二种是屏幕翻转方向时,系统先销毁当前的Activity,然后再重建一个新的,调用此方法时,我们可以保存一些临时数据;第三种情况系统调用此方法是为了保存当前窗口各个

78710

【Web动画】SVG 线条动画入门

CSS3 动画 javascript 动画(canvas) html 动画(SVG) 个人认为 3 种动画各有优劣,实际应用中根据掌握情况作出取舍,本文讨论的是认为 SVG 中在实际项目中非常有应用价值...举个栗子 SVG 线条动画,在一些特定的场合下可以解决使用 CSS 无法完成的动画。尤其是在进度条方面,看看最近项目里的一个小需求,一个这种形状的进度条: ?...svg 不同时,viewBox 在屏幕上的显示会缩放至 svg 同等大小(暂时可以不用理解) 有了 svg 标签,我们就可以愉快的在内部添加 SVG 图形了,上面,在 svg 中定义了两个 polyline...SVG 线条动画实现圆形进度条 多 SVG 图形线条动画配合 之前司一个 h5 里面应用过的,多SVG 图形线条动画配合,可以制作一些比较酷炫的动画,很有科技感。 ?...正文结束,的 Github 上,使用 SVG 实现了一些图形 -- SVG奇思妙想,Demo可以戳这里。

2.2K21

【用户体验】加载——Websocket与加载在前端交互上的体验提升

前言加载,顾名思义,就是将一些信息,从A载到B,这个过程类似运货,而这个过程不是瞬间发生的,就比如把从深圳运到广州,用复兴号运需要10分钟,这个就是加载时间。...无缝加载,是提升加载体验的一种办法,在加载的过程中,用户可无法做其他事情,而过程又很漫长的情况下用户心情就会很烦躁,比如在高铁上不能玩任何游戏,也没用书给我阅读,只能静坐着等待到达广州。...如果在这期间开ktv,开斗地主,整个过程就不会无聊了,而且也不只能静坐等待。...此时加入动画,加载器组件来自Ar-Sr-Na:ai.arsrna.cn 里的所有应用均为此控件图片发送事件之前,将该进度条隐藏,发送按钮按下后,显示进度条,成功后再次隐藏首先,让进度条隐藏图片定义发送接收事件...,阻止了整个应用的操作,只能静待加载完毕后加载层的消失而在《崩坏:星穹铁道》中,不是大面积的加载,而是仅把加载动画的位置换到了右上角图片从而避免挡住用户移动视角,移动人物这样看似很简单的一个操作,对用户体验的影响极大

2.6K00

Android 音乐APP(三)播放音乐、自定义进度条、自动下一曲

首先播放布局不随页面滚动,一直固定在屏幕的底部,其次是播放的进度是左边的这个logo中,而这个logo在播放的时候自动旋转,logo右边的是歌曲信息,内容超过控件时会有跑马灯效果,最右边自然就是控制歌曲的播放和暂停了...这个嘛,打算放在下一篇文章再来说明,步步为营,循序渐进。 ① 修改布局   首先要修改这个布局先达到图中的效果。 ? 下面附上现在的布局代码。...⑦ 旋转动画 在静中增加动,可以给用户更好的体验,所以我想到了图片的自转。通过属性动画来实现。...同时在底部的播放按钮里面也需要做相应的动画控制。 ? 最后在播放完成监听方法里面重置这个动画 ? 好了,功能就写完了,下面直接运行吧。 ⑧ 运行效果图 ?...结语 写代码的工程中逻辑很重要,最好是一气呵成,当你的思路被打断,无法集中注意力时,是写不好代码的,而文章则是在代码写好之后再写的,如果有什么问题及时提出来,我会尽快解决。

2.1K20

Android样式的开发:drawable汇总篇

还好有图工具,可以让图变得简单,这里推荐两款:Cutterman和Cut&Slice me,都是Photoshop下的插件,输出支持android、ios和web三种平台。...使用图工具虽然方便了,但还是无法避免一套图片需要提供多张不同尺寸的图片,这会加大安装包的大小。另外,需要对图片做改动时,比如换个颜色,必须更换所有尺寸图片。...((TransitionDrawable)drawable).startTransition(500); //正向切换,即从第一个drawable切换到第二个((TransitionDrawable)drawable...而animated-rotate则会让drawable不停地做旋转动画。...PS:selector标签下的item其实还可以添加set标签,这是添加动画集的标签,下一篇就将分享下一些常用动画的制作。

2.2K10

终极指南!超全面的UI动效基本规则总结

△ 以加速运动将卡片扔出屏幕 动画曲线有助于正确传达讯息,甚至表达情绪和感觉。...缓动减速曲线 元素从屏幕外运动到屏幕内的时候,动效应该遵循这类曲线的运动特征。从全速进入屏幕开始,速度降低,直到完全停止。 ?...△ 对称和非对称运动的差异 元素从屏幕的一个位置移动到另外一个位置的时候,最好使用这种标准的缓动曲线,这个过程中,尽量不要让动画效果引人注意,不要使用戏剧化的效果。 ?...△ 不同类型的 cubic-bezier()的曲线和参数 界面动效的编排 就像芭蕾舞的舞蹈编排一样,动画效果也是需要编排的,它的主要目的是让元素从一个状态切换到下一个状态,自然过渡,让用户的注意力自然地被引导过去...△ 成比例变化大小的时候,应该沿着直线运动 元素不成比例放大的时候,运动轨迹是弧线,而这种弧线运动轨迹有两种不同的呈现一种,一种轨迹是初始方向为垂直方向而运动结束时瞬间运动方向是水平的,另外一种初始方向是水平方向而运动结束时瞬间运动方向是垂直的

1.5K20

自定义View实战!众人看了直呼666!!

圆点之间的联动滚动 支持设置最多显示N个圆点,圆点总数超过N个时,暂时不显示在控件可见范围内,直到左/右滚动到靠近边界时,自动平移所有圆点,从而让最新选中的圆点再次回到居中的位置。...从效果图可以看出,指示器平移的触发时机在于每一次的左右切换,具体需要满足如下条件: 1.当前圆点总数超过最大可见数 2.当前准备切换的下一个圆点在屏幕非中间的位置 第一个条件,圆点总数超过最大可见数才可平移...第二个是切换的下一个圆点在屏幕非中间位置,这个是平移的一个规则,比如下面的例子: image.png 上图在切换之前,选中的是3,准备切换到4的过程中,由于当前总数为7个,超过最大可见数5个,满足第一个条件...圆点之间的粘性动画,本质上是以前一个圆点作为基准位置,然后平移另外一个圆点的水平位置,使得它们之间的闭合曲线逐渐变化,直到平移到与下一个圆点位置重合,如下: image.png 由红色圆点切换到绿色圆点的过程中...欢迎关注,分享Android干货,交流Android技术。 对文章有何见解,或者有何技术问题,欢迎在评论区一起留言讨论!

46820

BuildAdmin06:进度条和Loading页面的实现,路由导航守卫告诉你答案...

我们在访问一些网站,遇到页面加载不出来的时候,通常显示一个进度条,或者一个loading页面的动画页面。 那么,进度条和loading页面是如何实现的呢?...可以理解为页面元素全部渲染完成之后,执行的一个函数。...使用keyframe对Loading页面进行了一个循环动画定义,通过百分比定义了一个3D缩放的动画。...这时候,将Loading所在div的height和width都设置为100%,整个div就会占据整个屏幕。这样,整个页面只会展示Loading页面。...结语 这就是BuildAdmin中进度条和Loading页面的实现,主要是对router路由导航守卫的一个结合使用。 正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

27500

Android开发之ProgressBar字体随着进度条的加载而滚动

这里用的是LICEcap软件录制的gif图,效果有点掉帧,哪位仁兄有比较好的录制gif的软件烦请相告,小弟在此先行谢过。...// 进度条的最小单位,默认是1,你也可以是其他数值,在demo中为了方便使用了1: 进度条的最小单位 / 进度条的最大值 = 每一个百分比移动的距离/总的距离(控件的总宽度) 可以推导出: 每一个百分比要移动距离...= (进度条的最小单位 / 进度条的最大值)*总的距离(控件的总宽度) 因为要做移动动画效果,咱们为了避免ANR,直接开一个分线程来控制界面,主要代码如下 //开启分线程 new Thread...达到最大值时,上面的字体超出了屏幕范围而看不到了。...可以看出,数据为0%时就在progressBar对应数据的右方,数据为最大值时,超出屏幕显示不了就不足为其了。

75531

【效果高能】你不知道的 Animation 动画技巧

Loading 组件 进度条组件 Animation steps() 运用 ⏰ 实现打字效果 绘制帧动画 Animation 常用动画属性— ?...,为了让动画结束时仍处理动画开始位置,需要修改 stroke-dashoffset:-207(短划线+缺口长度) 进度条也是类似原理,帮助理解 stroke-dashoffset 属性,具体实现请查看示例...@keyframes loading { 0%{ stroke-dashoffset: 0; } 100%{ stroke-dashoffset: -207; /* 保证动画结束时仍处理动画开始位置...看下图可以发现: steps(N, start)将动画分为N段,动画在每一段的起点发生阶跃(即图中的空心圆 → 实心圆),动画结束时停留在了第 N 帧 steps(N, end)将动画分为N段,动画在每一段的终点发生阶跃...(即图中的空心圆 → 实心圆),动画结束时第 N 帧已经被跳过(即图中的空心圆 → 实心圆),停留在了 N+1 帧。

1.6K21

Windows Phone 7 Application Controls

程序设计时的考虑 进度条具有启用和禁用状态。它被启用时,你可以和它进行交互,如暂停进度条。 Page Title 尽管页标题并不是一个有用的控件,在这里我们还是要讨论它。...只要全景区域的宽度小于屏幕的宽度,垂直滚动是可以接受的。 支持所有自定义控件和标准控件。 与手指拖拽的移动比例相同。 当用户导向到一个新的区域时,开启屏幕动画。...设计全景区域的布局,使得少量的下一个全景区域可见。提供轻微的重叠,使得用户直觉地利用Pan手势来切换应用。 直到该全景区域有内容要表示时,才显示该全景区域。...避免使用标题动画,因为标题可以移动。 跨越整个区域,即使存在多个控件。 当用户导向到一个新的区域时,开启屏幕动画。 注: 根据全景区域的宽度是否大于或者小于屏幕的宽度,该全景区域的标题应该不同。...相反地,如果全景区域的宽度小于屏幕的宽度,标题就应该一直停留在该区域的左上方。在这种情况下,不应该使用水平滚动的动画,如果使用了垂直滚动,标题应该随着内容移动。

1.5K70

【Android 应用开发】Android应用的自动更新模块

注意一个错误 : 已安装具有该名称和不同签名的数据包 , 早上测试人员报告突然出现这个问题, 在开发的时候直接将eclipse上编译的版本放到了服务器上, 最后出现了这个问题, 开发的时候明明是好的啊...获取屏幕方向 //获取横屏方向 int orientation = this.getResources().getConfiguration().orientation; 其中的orientation...(Animation animation) { } //动画执行结束时回调 @Override public void onAnimationEnd(Animation animation...= XmlPullParser.END_DOCUMENT 就一直循环, 循环玩一个元素之后, 调用parser.next()遍历下一个元素. e....//只解析标签 case XmlPullParser.START_TAG: if ("updateInfo".equals(parser.getName())) { //解析到

2.3K50

动画进阶】当路径动画遇到滚动驱动!

本文,我们将一起利用纯 CSS,实现如下这么个酷炫的效果: 在一年前,介绍了 CSS 中非常新奇有趣的一个新特性 -- @scroll-timeline:革命性创新,动画杀手锏 @scroll-timeline...OK,我们通过一个例子,快速上手(回忆)滚动驱动动画。 我们来实现这么一个滚动进度指示器效果: 注意看 GIF 图的上方,有一个黄色进度条,可以通过滚动,改变黄色进度条的进度状态。...在之前,这个效果利用纯 CSS 是不太好实现的,但是有了 animation-timeline 之后,一都将变得非常轻松。...因此,整个页面是可以进行滚动的: 好,接下来,我们需要加上进度条,实现的方式有非常多种,这里通过给 #g-container 添加一个伪元素,将进度条的效果设置给这个伪元素,代码也非常简单: #g-container...当然,上述的动画是最基本的,可以充分利用 path 的特性,增加多个中间关键帧,稍微改造下上述代码: div { // 只改变运动路径,其他保持一致 offset-path: path

42130
领券