掘金彩蛋:爱的魔力转圈圈

简介: 出于好奇,我就想看看掘金怎么实现的,原来几行非常简单的css就实现了这个好玩的彩蛋。


看了站长的直播之后,瞬间觉得世界真奇妙。为什么有如此美丽的女子((⊙o⊙)…)。


让我想为站长吟诗作曲一首:


云想衣裳花想容,春风拂槛露华浓。

若非群玉山头见,会向瑶台月下逢。


我自己都笑了,哈哈哈哈,不调戏站长了,我们言归正传。昨天在逛掘金-我的主页时,发现一个掘金的彩蛋。觉得很有意思哈。



爱的魔力转圈圈,

想你想到心花怒放黑夜白天,

可是我害怕爱情只是一瞬间,

转眼会不见,

我要慢慢冒险。


出于好奇,我就想看看掘金怎么实现的,原来几行非常简单的css就实现了这个好玩的彩蛋。



下面我们来认识一下这段代码的CSS。


.user-info-block .avatar:hover{
    transform: rotate(666turn);
    transition-delay: 1s;
    transition-property: all;
    transition-duration: 59s;
    transition-timing-function: cubic-bezier(.34,0,.84,1);
}


一、transform


1. 描述


MDN:CSStransform属性允许你旋转,缩放,倾斜或平移给定元素。这是通过修改CSS视觉格式化模型的坐标空间来实现的。


2. 语法


transform: none|transform-functions;


描述
none 定义不进行转换。
matrix(n,n,n,n,n,n) 定义 2D 转换,使用六个值的矩阵。
matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) 定义 3D 转换,使用 16 个值的 4x4 矩阵。
translate(x,y) 定义 2D 转换。
translate3d(x,y,z) 定义 3D 转换。
translateX(x) 定义转换,只是用 X 轴的值。
translateY(y) 定义转换,只是用 Y 轴的值。
translateZ(z) 定义 3D 转换,只是用 Z 轴的值。
scale(x,y) 定义 2D 缩放转换。
scale3d(x,y,z) 定义 3D 缩放转换。
scaleX(x) 通过设置 X 轴的值来定义缩放转换。
scaleY(y) 通过设置 Y 轴的值来定义缩放转换。
scaleZ(z) 通过设置 Z 轴的值来定义 3D 缩放转换。
rotate(angle) 定义 2D 旋转,在参数中规定角度。
rotate3d(x,y,z,angle) 定义 3D 旋转。
rotateX(angle) 定义沿着 X 轴的 3D 旋转。
rotateY(angle) 定义沿着 Y 轴的 3D 旋转。
rotateZ(angle) 定义沿着 Z 轴的 3D 旋转。
skew(x-angle,y-angle) 定义沿着 X 和 Y 轴的 2D 倾斜转换。
skewX(angle) 定义沿着 X 轴的 2D 倾斜转换。
skewY(angle) 定义沿着 Y 轴的 2D 倾斜转换。
perspective(n) 为 3D 转换元素定义透视视图。


3. 兼容性


2D Transforms


3D Transforms


4. rotate(666turn)

1turn = 360°

666true = 666*360°


一、transition-delay


1. 描述


CSS的transition-delay属性规定了在过渡效果开始作用之前需要等待的时间。值以秒(s)或毫秒(ms)为单位,表明动画过渡效果将在何时开始。取值为正时会延迟一段时间来响应过渡效果;取值为负时会导致过渡立即开始。


2. 语法


transition-delay: time;

描述
time 规定在过渡效果开始之前需要等待的时间,以秒或毫秒计。


3. 兼容性



4. transition-delay: 1s


过渡效果开始之前等待1秒


三、transition-property


1. 描述


transition-property 指定应用过渡属性的名称。


2. 语法


transition-property: none|all|property;


描述
none 没有属性会获得过渡效果。
all 所有属性都将获得过渡效果。
property 定义应用过渡效果的 CSS 属性名称列表,列表以逗号分隔。


3. 兼容性


CSS property: transition-property



CSS property: transition-property: IDENT value



4. transition-property: all


为所有属性定义过渡效果。


四、 transition-duration


1. 描述


transition-duration 属性以秒或毫秒为单位指定过渡动画所需的时间。默认值为 0s ,表示不出现过渡动画。


2. 语法


transition-duration: time;


描述
time 规定完成过渡效果需要花费的时间(以秒或毫秒计)。默认值是 0,意味着不会有效果。


3. 兼容性



4. transition-duration: 59s


过渡动画所需的时间为59s。


五、 transition-timing-function


1. 描述


CSS属性受到 transition effect的影响,会产生不断变化的中间值,而 CSS transition-timing-function 属性用来描述这个中间值是怎样计算的。实质上,通过这个函数会建立一条加速度曲线,因此在整个transition变化过程中,变化速度可以不断改变。


2. 语法


transition-timing-function: linear|ease|ease-in|ease-out|ease-in-out|cubic- bezier(n,n,n,n);


描述
linear 规定以相同速度开始至结束的过渡效果(等于 cubic-bezier(0,0,1,1))。
ease 规定慢速开始,然后变快,然后慢速结束的过渡效果(cubic-bezier(0.25,0.1,0.25,1))。
ease-in 规定以慢速开始的过渡效果(等于 cubic-bezier(0.42,0,1,1))。
ease-out 规定以慢速结束的过渡效果(等于 cubic-bezier(0,0,0.58,1))。
ease-in-out 规定以慢速开始和结束的过渡效果(等于 cubic-bezier(0.42,0,0.58,1))。
cubic-bezier(n,n,n,n) 在 cubic-bezier 函数中定义自己的值。可能的值是 0 至 1 之间的数值。


3. 兼容性


CSS property: transition-timing-function



CSS property: transition-timing-function: jump- keywords for steps()



4. cubic-bezier(.34,0,.84,1)


在 cubic-bezier 函数中定义自己的值。 cubic-bezier称为三次贝塞尔曲线,主要是生成速度曲线的函数,规定是cubic-bezier(,,,) .


从上图中我们可以看到,cubic-bezier有四个点:


两个默认的,即:P0(0,0),P3(1,1);

两个控制点,即:P1(x1,y1),P2(x2,y2);


注:X轴的范围是0~1,超出cubic-bezier将失效,Y轴的取值没有规定,但是也不宜过大。 我们只要调整两个控制点P1和P2的坐标,最后形成的曲线就是动画曲线。


六、总结


.user-info-block .avatar:hover{
    transform: rotate(666turn);
    transition-delay: 1s;
    transition-property: all;
    transition-duration: 59s;
    transition-timing-function: cubic-bezier(.34,0,.84,1);
}


这些属性组合起来就实现了掘金的小彩蛋,爱的魔力转圈圈。看彩蛋的同时还学习了几个简单CSS3属性,站长萌萌哒~~~

目录
相关文章
|
3月前
|
安全 物联网 开发工具
《哇塞!flux.1 loras 竟如此神奇?十个问题带你揭开它的神秘面纱,开启震撼科技之旅!》
【8月更文挑战第20天】flux.1 LoraS 是一种基于LoRa的远距离、低功耗无线通信技术,适用于物联网领域。它利用扩频技术提升抗干扰性和传输距离,可在智能农业、物流等多种场景中部署。具备远距离传输、低能耗、高可靠性的特点,并支持AES-128加密确保安全通信。开发者可通过特定硬件和软件工具进行开发。随着物联网技术的发展,flux.1 LoraS 展现出广阔的应用前景。
78 2
|
设计模式 人工智能 Java
整活整活,给公众号赋点能!
大家好,我是三友~~ 整活了整活了,花了一个周末的时间整了个活 我把AI大模型对话功能给接入到公众号了 以后在公众号就可以直接使用AI对话功能
|
存储 前端开发 JavaScript
你小子!过年了,写了一个拼图小游戏来拼掘金兔年礼盒,来玩玩不?
你小子!过年了,写了一个拼图小游戏来拼掘金兔年礼盒,来玩玩不?
204 2
|
程序员 图形学 芯片
掘金收割机的年终总结,我用 Three.js 创建了一个"掘金城市" | 2021年终总结征文
我叫大帅,一个老程序猿。本文会在评论中抽一个幸运鹅获得掘金周边鼠标垫1份
293 0
掘金收割机的年终总结,我用 Three.js 创建了一个"掘金城市" | 2021年终总结征文
|
监控 数据挖掘 数据库
|
Java 程序员 Spring
聚能聊每周精选 第十五期
Hello! 各位社区小伙伴们!好久不见!“爱你就像,蓝天白云,晴空万里,突然暴风雨。”接下来,让我们一起回顾一下,本周都有哪些热议的话题?各位聊主与粉丝们又有哪些精彩的互动?他们之间又碰撞出了怎样的火花? .
3336 0
聚能聊每周精选 第十五期
|
设计模式 机器学习/深度学习 算法
|
人工智能 运维 小程序
为何小程序上线了,他们的内心却留下遗憾? | 11月1号栖夜读
今天首篇文章,讲述了:出于多端投放和开放生态的考虑,闲鱼开始接入整个阿里小程序体系。闲鱼在9月份迅速上线了第一个小程序鱼塘小程序,由于刚接触不熟悉小程序体系,整体性能上有比较大的优化空间,主要表现在以下问题。
2772 0
|
供应链 小程序 安全
社区团购讲堂之敲黑板、划重点!社区团购哪些是考点?
任何一个行业要想持续发展,就要不断的汲取新事物的营养,跟上趋势的节奏,才能在激烈的市场竞争中脱颖而出,屹立不倒!社区团购之所以被资本市场青睐,其根本原因在于,社区团购符合了当下消费者的“潜在核心需求”。
|
Java 程序员 双11
聚能聊每周精选 第十九期
聚能聊的粉丝们(聚丝,听起来像果汁),好久不见。 Hello! 各位社区小伙伴们!好久不见! “爱你就像,蓝天白云,晴空万里,突然暴风雨。” 接下来,让我们一起回顾一下,本周都有哪些热议的话题?各位聊主与粉丝们又有哪些精彩的互动?他们之间又碰撞出了怎样的火花? 接下来,让我们一起回顾一下,近期都有哪些热议的话题。
3052 0