首页
学习
活动
专区
圈层
工具
发布

如何用纯css打造类materialUI的按钮点击动画并封装成react组件

materialUI的按钮点击动画,并封装到自己的UI库中,笔者特地总结了一些思路,希望可以和广大的前端工程师们一起探讨....正文 首先我们看一下materialUI的按钮点击效果: ?...本质上也是用了css3动画的特性, 笔者查看源代码和通过点击发现materialUI会根据点击位置不同而作不同位置的动画,这个有点意思.我们先不讲这么复杂的例子,下面通过css3的方案来实现一个类似的效果...原理 这个动效的原理其实也很简单,就是利用css3的transition过渡动画,配合::after伪对象就可以实现,点击的时候由于元素会激活:active伪类, 然后我们基于这个伪类, 在::after...组件设计思路 仅仅用上述代码虽然可以实现一个按钮点击的动画效果,但是并不通用, 也不符合作为一个经验丰富的程序员的风格,所以接下来我们要一步步把它封装成一个通用的按钮组件,让它无所不用.

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

    EasyPlayer播放H.265视频时,画面出现进度按钮的问题修复

    H.265流媒体播放器EasyPlayer可支持多类型的视频流格式播放,包括RTSP、RTMP、HLS、FLV、WebRTC等,还可支持H.264/H.265视频播放,属于高可靠、高可用、高稳定性的流媒体播放器...我们在测试EasyPlayer新功能时发现,EasyPlayer播放器在播放H.265视频时,画面屏幕上显示出了进度的按钮,如图:经过排查发现,原来是vjs-play-progress vjs-slider-bar...所以,在判断视频是否为H.265时,及时更新css的状态,如图:使用this....$el.querySelector(".vjs-progress-control").style.opacity = 0;这个方法,用于隐藏该按钮。...EasyPlayer播放器系列项目依赖其灵活控制、低延时、高稳定的特点,已经成熟运用于多个项目场景当中,其中包括手机直播、电脑桌面直播等。

    1.3K20

    EasyCVR视频广场点击播放时,主菜单高亮效果消失问题的修复

    EasyCVR平台支持海量视频的汇聚接入与管理,拓展性强、开放度高,平台可在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理。...图片近期有用户反馈,在使用EasyCVR平台时出现了显示异常:点击视频广场左侧列表,点击播放时,主菜单高亮效果消失;在录像回放时点击播放,以及切换时间轴播放时,主菜单的高亮效果也消失了。...查看对应代码、分析对应事件的逻辑关系,并找到对应事件:图片修改对应的代码,增加对应路由跳转时对应事件的高亮保持效果:图片EasyCVR平台支持设备通过国标GB28181、RTMP、RTSP/Onvif、...海康SDK、大华SDK、Ehome等协议接入,对外可分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。...平台可拓展性强、视频能力灵活、部署轻快,感兴趣的用户可以前往演示平台进行体验或部署测试。

    1K20

    EasyGBS点击通道播放时设备刚好离线,提示文字不显示问题的优化

    GB/T28181协议是公安部为规范安防视频监控市场而推出的视频监控联网标准协议,为的是降低视频监控设备互联的难度,尤其是在明厨亮灶、雪亮工程、平安城市、平安乡村等工程中。...TSINGSEE青犀视频的EasyGBS也是支持GB28181协议的视频接入、转码、处理及分发的云服务平台,除了支持国标GB28181设备/平台接入,还拥有国标平台级联、语音对讲、经纬度定位、告警查询、...近期出现了在EasyGBS点击通道播放时,设备此时刚好离线,导致提示文字不显示的问题(如图)。 经过技术人员的排查发现,接口返回http的400状态,解析字段异常,导致提示的文字无法显示。...在国标GB28181协议中,如果需要级联,则下级平台需要向上级平台进行登录注册,才能开启上下级之间的连接。...去年我们对EasyGBS、EasyCVR等平台升级了新内核,新内核版本的平台性能更加稳定和流畅,感兴趣的用户可以前去演示平台进行体验。

    78720

    React19 中的 hook 可以写在 if 条件判断中了。use 实践:点击按钮更新数据

    接下来,我们将会以大量的实践案例来展开 React 19 新 hook 的运用。 本文模拟的实践案例为点击按钮更新数据。这在开发中是一个非常常见的场景。...每次点击,我们都需要创建新的 promise 代码如下 // 记住这个初始值 const [api, setApi] = useState(null) 这个时候,当我们点击事件执行时,则只需要执行如下代码去触发组件的更新...function __clickToGetMessage() { setApi(getApi()) } return ( 点击按钮获取一条新的数据...当条件互斥时,状态之间如果存在不合理的耦合关系,依然不能正常执行。我们列举两个案例来观察这个事情。...useEffect(() => { api().then(res => { setData(res) setLoading(false) }) }, []) } 按钮点击事件触发时

    1.3K11

    vue3 model.ts render中的按钮被点击时将事件传递到vue页面

    背景:列表中的字段配置放在model.ts中,models.ts中某个字段可以点击,当点击发生时需要将点击事件传递到vue页面,页面再做出相应处理。...我的model.ts配置的表格列:再点击button时,该点击事件仅在model.ts内可用,无法传递到外部,所以使用vue的依赖注入方法,代码也比较简单,我的感受是有点类似于emit。...:接下来就是外部的接收事件了,我们来到需要接收事件的vue页面: import { provide } from 'vue'; const handleFieldClick = (data: any)...=> { console.log('字段被点击了,数据:', data); // 在这里处理点击事件 }; provide('fieldClicked', handleFieldClick);...想要了解更多相关知识,可以查看我以往的文章,其中有许多精彩内容。记得关注我,获取及时更新,我们可以一起学习、讨论技术,共同进步。感谢你的阅读与支持,期待在未来的文章中与你再次相遇!

    1.5K10

    跟我学Rx编程——调皮的背景音乐按钮

    涉及操作符 partition switchMapTo takeUntil 业务逻辑 点击背景音乐按钮,则播放音乐,再次点击暂停播放音乐 当切换场景的时候,如果音乐正在播放,则切换新的场景的背景音乐 当切换场景的时候...,如果音乐已经暂停,则等待点击后再播放新的音乐 当有音乐的时候,按钮播放旋转动画,暂停播放时按钮静止不动 对于使用者来说再正常不过的逻辑,开发起来却不是那么容易,因为涉及到声音的加载,切换,暂停和响应点击等...合起来,就是在下面两种情况之一就执行加载音乐并播放音乐和动画的逻辑 1. 正在播放音乐时转场 2....静音时转场,然后点击了播放音乐的按钮 下面我们分析以下的逻辑: })), switchMapTo(playMusicClickOb.pipe(takeUntil(muteStageOb)), outV...静音时转场,然后点击了播放音乐的按钮 的状态,看到没,所以我们使用takeUntil来终止当前事件流。如果是播放音乐的状态下转场了呢?这就回到了上面的 1.

    92210

    「JavaScript 」动画基础 - 02

    当我们点击按钮时候,判断步长是正值还是负值 如果是正值,则步长往大了取整 如果是负值,则步长 向小了取整 1.1.3 动画函数添加回调函数 回调函数原理:函数可以作为一个参数。...点击右侧按钮一次,图片往左播放一张,以此类推,左侧按钮同理。 图片播放的同时,下面小圆圈模块跟随一起变化。 点击小圆圈,可以播放相应图片。 鼠标不经过轮播图,轮播图也会自动播放图片。...点击右侧按钮, 图片滚动一张 var num = 0; // circle 控制小圆圈的播放 var circle = 0; // flag 节流阀 var flag...点击右侧按钮,小圆圈跟随一起变化 可以再声明一个变量控制小圆圈的播放 circle++; // 如果circle == 4 说明走到最后我们克隆的这张图片了...节流阀 防止轮播图按钮连续点击造成播放过快。 节流阀目的:当上一个函数动画内容执行完毕,再去执行下一个函数动画,让事件无法连续触发。

    66520

    网页轮播图案例

    2.点击右侧按钮一次,图片往左播放一张,以此类推,左侧按钮同理。 ​ 3.图片播放的同时,下面小圆圈模块跟随一起变化。 ​ 4.点击小圆圈,可以播放相应图片。 ​...③ 但是图片有5张,我们小圆圈只有4个少一个,必须加一个判断条件 ④ 如果circle == 4 就 从新复原为 0 案例分析8. ① 自动播放功能 ② 添加一个定时器 ③ 自动播放轮播图,实际就类似于点击了右侧按钮...点击右侧按钮,小圆圈跟随一起变化 可以在声明一个变量控制小圆圈的播放 circle++; // 如果 circle == ol.childre.length 说明走到最后我们克隆的这张图片了...点击左侧按钮,小圆圈跟随一起变化 可以在声明一个变量控制小圆圈的播放 circle--; // 如果 circle < 0 说明第一张图片 则小圆圈就要改为第四个小圆圈(3)...节流阀 防止轮播图按钮连续点击造成播放过快。 节流阀目的:当上一个函数动画内容执行完毕,再去执行下一个函数动画,让事件无法连续触发。

    2.8K10

    Unity动画☀️二、什么是按钮动画?什么是2D精灵动画?如果你想知道,我现在就带你研究!

    上一步,我们点击“Auto Generate Animation”,是创建了一个Animator和5个Animation 在不同的触发时,比如鼠标移入、移出,挂载在该按钮上的Animator就会调用对应的...1、选中层级面板上的按钮,点击Unity上方的 Window--Animation--Animation,弹出Animation面板 选择Highlighted动画,该动画是鼠标移入时触发的动画。...将竖直的白色时间线拖到0.05s处 改变检视面板上按钮scale的值为(1.2,1.2,1) 改变按钮的颜色为橙色 点击红色按钮结束录制。...3、取消Loop 创建的Animation默认是循环播放动画的,即意味着当鼠标移入时,它会不停地播放这个效果。 但我们只想让它播放一次就好了。 选中该动画,取消检视面板的Loop选项即可。...3️⃣ 调整播放速度 这时运行游戏,可能看到播放速度有点快 我们双击状态机Animator,进入该动画的状态机编辑器。

    95710

    148. 粘性头部列表进阶篇

    一、进阶功能概述在本教程中,我们将探讨以下进阶功能:自定义粘性头部样式:定制粘性头部的外观和行为头部交互增强:为头部添加更丰富的交互功能分组折叠与展开:实现分组的折叠和展开功能动画与过渡效果:为列表添加流畅的动画和过渡效果列表项交互优化...:改善列表项的点击、长按等交互体验播放控制功能增强:实现更完善的音乐播放控制功能列表性能优化:提高大量数据下的列表性能二、自定义粘性头部样式1....头部点击展开详情我们可以为专辑头部添加点击事件,点击时展开专辑详情:// 专辑详情状态@State expandedAlbum: string | null = null// 切换专辑详情展开状态toggleAlbumDetails...当前播放歌曲高亮动画为当前播放的歌曲添加呼吸灯效果:// 在ListItem中添加呼吸灯动画.animation(this.currentSong?....增强的播放控制栏// 底部播放控制栏(当有歌曲播放时显示)if (this.currentSong) { Column() { // 进度条 Slider({

    28800

    教你爱的正确姿势-QQ红包520项目总结

    ,用户习惯在有wifi的情况下才会看,不便于传播,且无法在播放过程中提供交互操作(如在各场景结尾都会让用户操作如何应对各种难题),所以也不合适; animate cc+createjs则很好地解决了以上方案的各种弊端...用户操作猫爪进行选择时,既可以拖动猫爪,又可以点击目标位置完成选择。对于给鱼的场景,猫爪左边大量的空白位置也能拖动猫爪,方便各种操作习惯的用户。当用户没操作的时候,会显示提示箭头指引用户操作。 ?...在QQ聊天场景中,选择发红包和直接发晚安,分别会去到不同的结果页,页面上会有宝贝橘对应的开心/失望反应,并会摆动猫爪指着下面的发红包按钮,发红包按钮也会有一个放大抖动的微动效,以吸引用户注意力,指引用户此时应点击按钮使用发红包功能...据之前的运营活动数据分析,这些按钮在有/无动效的情况下转化率差别还是挺明显的。 ? 六、创作时要注意的地方 在创作的过程中,我们踩了不少坑,耽误了一些时间,也发现了一些好的工作方式以提高效率。...4.虽然这是QQ的活动,但可以探讨一下如果在微信上打开,可不可以让整个动画都在微信上播放,到了发QQ红包和领厘米秀装饰时再跳到QQ上进行。这样在微信上的传播范围应该会更广。

    1.5K30

    开发游戏时如何操控 游戏打击感?利用好Feel插件可快速提升游戏感

    mmfeedback 方向条件 让你定义这个反馈是否总是播放,或者只在父mmfeedback反向或正向播放(默认)时播放。...点击Unity的运行,在Hierarchy窗口选中Enemy,在Inspector窗口点击MMF Player下的Play按钮,即可看到方块受击的位移+闪白反馈。...选中该物体,在Inspector窗口点击MMF_Player下的Play按钮,即可看到对象受击的声音反馈。...找到MMF_Player ,点击 Add new feedback... -> Animation-> Animation Parameter 动画受击效果所需条件:敌人身上需要有Animator组件...比如这个敌人预制体身上的动画组件中有三个动画片段:Idle、Attack、Damage 此时运行Unity,选中该物体,在Inspector窗口点击MMF Player下的Play按钮,即可看到对象受击的动画反馈效果

    2.4K20

    JavaScript案例:轮播图

    轮播图也称为焦点图,是网页中比较常见的网页特效。 功能需求 鼠标经过轮播图模块,左右按钮显示,离开隐藏左右按钮。 点击右侧按钮一次,图片往左播放一张,以此类推,左侧按钮同理。...但是图片有5张,我们小圆圈只有4个少一个,必须加一个判断条件 如果 circle==4 就从新复原为0 自动播放功能 添加一个定时器 自动播放轮播图,实际就类似于点击了右侧按钮 此时我们使用手动调用右侧按钮点击事件...arrow_r.click() 节流阀 防止轮播图按钮连续点击造成播放过快。...点击右侧按钮, 图片滚动一张 var num = 0; // circle 控制小圆圈的播放 var circle = 0; // flag 节流阀 var flag...点击右侧按钮,小圆圈跟随一起变化 可以再声明一个变量控制小圆圈的播放 circle++; // 如果circle == 4 说明走到最后我们克隆的这张图片了

    3.6K10

    使用动画曲线编辑器打造炫酷的3D可视化ACE

    key 的属性具体值 (选中一个key时) 创建关键 key:这个按钮将会在整个播放轴上创建一个 新的关键key, 并且将渲染画布此时网格对象的对应属性值作为新创建 key 的属性值,(换句话说,可以在...帧画布 ,这个按钮会自适应当前设定的关键 key, 当设定的 key value 超出画布时,可以使用该按钮来重置画布。...(4)最后给大家介绍动画播放面板 按钮分别如下 第一帧和最后一帧 前一帧和后一帧 前一个关键key和后一个关键key 正放与倒放动画 播放范围,需要指定动画开始和结束播放帧数...动画播放面板反复查看修改动画属性,制作好动画之后,就可以使用保存按钮来将制作好的动画导入了。...修改动画播放范围: 确定Y轴动画: 然后按照“创建 新 key” => “设定新key frame value” => “播放动画”的步骤来创建新key: 通过切线按钮可以调整动画之间的线性关系

    65810

    HarmonyOS NEXT 小说阅读器应用系列教程之底部菜单栏实现教程

    技术要点本教程涉及以下HarmonyOS开发技术点:ArkUI组件化开发状态管理与数据同步动画效果实现事件处理与交互条件渲染与可见性控制底部菜单栏结构设计我们的底部菜单栏主要包含以下几个部分:底部图标导航栏...点击按钮的名称,用来判断是否已被点击 @Link isVisible: boolean; // 用来判断翻页方式视图是否显示 @Link isCommentVisible...:使用条件渲染切换图标的填充/未填充状态为每个图标添加点击事件处理使用动画效果增强交互体验3....Visibility.Visible : Visibility.None)这里的关键点:使用ForEach循环渲染按钮列表根据选中状态动态改变按钮文字颜色通过visibility属性控制面板的显示和隐藏...:使用三元表达式和visibility属性控制UI元素的显示和隐藏事件处理:为UI元素添加点击事件处理函数,实现交互逻辑动画效果:使用animateTo实现平滑的状态过渡资源引用:使用$r引用应用资源,

    35000

    HarmonyOS NEXT 小说阅读器应用系列教程之底部菜单栏实现教程

    技术要点 本教程涉及以下HarmonyOS开发技术点: ArkUI组件化开发 状态管理与数据同步 动画效果实现 事件处理与交互 条件渲染与可见性控制 底部菜单栏结构设计 我们的底部菜单栏主要包含以下几个部分...点击按钮的名称,用来判断是否已被点击 @Link isVisible: boolean; // 用来判断翻页方式视图是否显示 @Link isCommentVisible...: 使用条件渲染切换图标的填充/未填充状态 为每个图标添加点击事件处理 使用动画效果增强交互体验 3....Visibility.Visible : Visibility.None) 这里的关键点: 使用ForEach循环渲染按钮列表 根据选中状态动态改变按钮文字颜色 通过visibility属性控制面板的显示和隐藏...:使用三元表达式和visibility属性控制UI元素的显示和隐藏 事件处理:为UI元素添加点击事件处理函数,实现交互逻辑 动画效果:使用animateTo实现平滑的状态过渡 资源引用:使用$r引用应用资源

    35510
    领券