网站首页 > 技术文章 正文
下面看看这些选择器是如何应用的:
一、active
对于:active
这个选择器,MDN上是这样定义的:
:active
CSS伪类匹配被用户激活的元素。它让页面能在浏览器监测到激活时给出反馈。当用鼠标交互时,它代表的是用户按下按键和松开按键之间的时间。
现在我们知道了,通过这个属性,可以获得一个元素上,鼠标左键按下/松开两个状态
button { /* 鼠标松开 */}button:active { /* 鼠标按下 */} 那么,拿到了这个状态后,你就不想做点什么吗?
应用场景
简单应用
最简单的应用呢,就是在Button按下时改变一些样式,在视觉上给用户一些反馈,比如这样
button { background-color: rgb(77, 181, 255, 0); }button:active { background-color: rgb(77, 181, 255, 1); color: #fff; }
如果觉得动画太生硬,还可以使用 transition 来过渡,使动画看起来更加‘顺滑’
效果如下:
变颜色这种最基础的操作,肯定是无法满足大家滴,我们可以玩的花一点,比如给他定义一个animation
button:active { animation: shake 0.1s ease infinite; }
效果如图(依旧是录制帧数过低):
再多想一下
以上的两个例子,都是在两个状态之间切换,说白了只是改个样式,并没有很强的交互性,我们就只能做到这种程度吗?
二、emmmmm.....??
在等外卖的无聊时间里,我骚动不已的心终于蹦出来了一个想法!我们可以自己定义动画,就意味着多掌握了一项关键属性,那就是时间,现在我有了按下、松开和时间三个要素,我可以做一个计时的操作啊
效果没有,图片太大了,下面有源码~~
这个demo做的呢,是在按钮被按住2s后发起一个操作,不到2s松开就会取消
这里光用css肯定不行的啦,我加了一点点js进来,这里用到了animationend这个事件
document.getElementById('ring').addEventListener('animationend', function () { alert('结束啦') }, false)
对的,只是用js写的alert,动画部分还是纯css实现的,代码有点长,就不放这里了,有兴趣的同学可以戳‘阅读原文’自取, 这里只谈一下思路
注意事项
1.active和:hover这两个状态会同时活动,所以如果你在同一个元素上定义了这两个状态的话,请注意一下css的书写顺序
2.在button元素上,:active生效的同时,会出发:focus状态,需要先重置浏览器的默认:focus样式
三、checked
TODO
简单应用 => 开灯/关灯效果
深入联想 => 评分组件
+ 和 ~ 这两个选择器
TODO
上面的例子中都用用到,简单介绍下概念就好了,主要用来扩大css选择器的控制范围,实现更复杂的效果
猜你喜欢
- 2024-10-24 初探animation中steps()属性(animation steps属性)
- 2024-10-24 HTML5(九)——超强的 SVG 动画(htmlsvg动画代码)
- 2024-10-24 自定义日历(二)(自定义日历控件)
- 2024-10-24 Flutter简单动画Animation运用(flutter 视频教程)
- 2024-10-24 css3中动画animation中的steps()函数
- 2024-10-24 移动端渲染原理浅析(移动端渲染原理浅析设计)
- 2024-10-24 iOS 事件处理机制与图像渲染过程(简述ios中的事件响应机制)
- 2024-10-24 Android 开机问题分析(android无法开机)
- 2024-10-24 GoogleCTF + zer0ptsCTF + ImaginaryCTF 2023 笔记
- 2024-10-24 决战“金三银四”,中高级Web前端大厂面试秘籍:CSS篇
- 11-26Win7\8\10下一条cmd命令可查得笔记本电脑连接过的Wifi密码
- 11-26一文搞懂MySQL行锁、表锁、间隙锁详解
- 11-26电脑的wifi密码忘记了?一招教你如何找回密码,简单明了,快收藏
- 11-26代码解决忘记密码问题 教你用CMD命令查看所有连接过的WIFI密码
- 11-26CMD命令提示符能干嘛?这些功能你都知道吗?
- 11-26性能测试之慢sql分析
- 11-26论渗透信息收集的重要性
- 11-26如何查看电脑连接过的所有WiFi密码
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)