如何实现一个惊艳女友的血轮眼轮回眼特效
点击上方 程序员成长指北,关注公众号
回复1,加入Node高级进阶交流群
效果(完整代码在底部):
实现并不难,都是重复的代码比较多。
实现(可跟着一步一步写):
1. 先定义基本标签:
<!-- 血轮眼 --><div class="zuo"><!-- 眼睛最中间那个黑点 --><div class="zuoZong"><!-- 三勾玉所在的圈 --><div class="zuoYu"><!-- 三个勾玉 --><span class="yu"></span><span class="yu"></span><span class="yu"></span></div></div></div><!-- 轮回眼 --><div class="you"><!-- 眼睛最中间那个黑点 --><div class="dian"></div><!-- 3个轮回圈 --><div class="youYu"> <span class="quan" style="--r:2;"></span><span class="quan" style="--r:3;"></span><span class="quan" style="--r:4;"></span></div> </div>
2. 定义左右眼的基本css样式:
.zuo , .you{ width: 250px;height: 120px;background-color: rgb(255, 255, 255);border-bottom: 5px solid rgb(70, 70, 70);overflow: hidden;position: relative;}
border-bottom: 5px solid rgb(70, 70, 70); 给个灰色的眼底。overflow:溢出隐藏。position: relative; 相对定位。
3. 开始先定义血轮眼的基本样式:
.zuo{transform: translateX(-135px);border-radius: 0 120px 0 120px;box-shadow: inset 3px 2px 3px rgba(17, 17, 17, 0.8);}
transform: translateX(-135px); 向左偏移,让两眼分开。border-radius:给两个角设置弧度,形成眼睛形状。bos-shadowL给眼角一点阴影。
4. 设置眼球宽高等:
.zuo::after{content: '';position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);width: 95px;height: 95px;border-radius: 50%;border: 2px solid #000;animation: colour 2s linear forwards;}@keyframes colour{0%,30%{background-color: rgb(0, 0, 0);}100%{background-color: rgb(255, 4, 4);}}
position: absolute; 绝对定位 top: 50%; left: 50%; transform: translate(-50%,-50%); 居中对齐。animation:设置动画,让其变红色。forward:继承最后一帧的属性。background-color: rgb(0, 0, 0); 黑色 background-color: rgb(255, 4, 4); 红色。
5. 设置眼球正中间的黑点,都是些定位大小啥的,然后设置动画然它慢慢变大:
.zuoZong{position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);width: 0px;height: 0px;border-radius: 50%;background-color: rgb(0, 0, 0);z-index: 1;animation: da 3s linear forwards;}@keyframes da{100%{width: 15px;height: 15px;}}
6. 设置三勾玉所在的圈,设置动画让其显示与旋转:
.zuoYu{position: absolute;top: -25px;left: -25px;bottom: -25px;right: -25px;border-radius: 50%;border: 2px solid rgb(0, 0, 0);animation: zhuan 2s linear 2s forwards;opacity: 0;}@keyframes zhuan{100%{opacity: 1;transform: rotate(720deg);}}
position: absolute; top: -25px; left: -25px; bottom: -25px; right: -25px; 大小。border-radius: 50%;圆形。border: 2px solid rgb(0, 0, 0); 黑色边框。opacity:0;透明度为0;transform: rotate(720deg); 旋转720度。
7. 制作三勾玉,先做一个圆,再用双伪类制作一个圆弧,两者结合就是勾玉了:
.zuoYu .yu{position: absolute;width: 15px;height: 15px;border-radius: 50%;background-color: rgb(0, 0, 0);}.zuoYu .yu::after{content: '';position: absolute;top: -6px;left: -1px;width: 6px;height: 20px;border-radius: 50%;border-left: 6px solid rgb(0, 0, 0);}
border-radius: 50%; border-left: 6px solid rgb(0, 0, 0); 先让伪类为圆,再只设置一条边框,圆弧形成,再定位在父元素上,形成勾玉。
8. 给勾玉设置动画,让其从最中间变大旋转到勾玉所在的圈:
.zuoYu .yu:nth-child(1){animation: yu1 2s ease-in 2s forwards;}@keyframes yu1{0%{opacity: 0;left: 50%;top: 50%; transform:translate(-50%,-50%) scale(0.1) ;}100%{left: 50%;top: -9%;transform: scale(1) rotate(80deg); }}
left: 50%; top: 50%; 在最中间。opacity:透明。scale(0.1);缩小。100%{..}到对应位置,同时变不透明和放大成正常大小。
9. 一样的,给其它两个勾玉动画:
.zuoYu .yu:nth-child(2){animation: yu2 2s ease-in 2s forwards; }@keyframes yu2{0%{opacity: 0;left: 50%;top: 50%;transform: translate(-50%,-50%) scale(0.1) ;}100%{top: 60%;left: -9%;transform: scale(1) rotate(-60deg); }}.zuoYu .yu:nth-child(3){ animation: yu3 2s ease-in 2s forwards;}@keyframes yu3{0%{opacity: 0;right: 50%;top: 50%;transform: translate(-50%,-50%) scale(0.1);}100%{top: 60%;right: -9%;transform: scale(1) rotate(180deg); }}
10.给两个眼睛都设置一个白点,相当于反光效果吧,至此血轮眼做完了:
.zuo::before,.you::before{content: '';position: absolute;left: 38%;top: 30%;width: 12px;height: 12px;border-radius: 50%;background-color: rgb(255, 255, 255);z-index: 10;}
position: absolute; left: 38%; top: 30%; 定位相应的位置。background-color: rgb(255, 255, 255); 白色。z-index: 10; 设置为10,显示在最上层。
11.设置轮回眼基本css样式,跟血轮眼一样:
.you{transform: translateX(135px);border-radius: 120px 0 120px 0;box-shadow: inset -3px 2px 3px rgba(17, 17, 17, 0.8);}
12.设置眼球宽高等:
.you::after{content: '';position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);width: 95px;height: 95px;border-radius: 50%;border: 2px solid #000;animation: youcolor 2s linear forwards;}@keyframes youcolor{0%,30%{background-color: rgb(0, 0, 0);}100%{background-color: rgb(144, 130, 183);}}
position: absolute; 绝对定位 top: 50%; left: 50%; transform: translate(-50%,-50%); 居中对齐。animation:设置动画,让其变紫色。forward:继承最后一帧的属性。background-color: rgb(0, 0, 0); 黑色 background-color: rgb(144, 130, 183); 紫色。
13. 设置眼球最中间的黑点,跟血轮眼也差不多:
.dian{ position: absolute;top: 50%;left: 50%; background-color: #000;transform: translate(-50%,-50%);border-radius: 50%;z-index: 10;animation: youda 3s linear forwards;}@keyframes youda{0%{height: 0px;width: 0px;}100%{height: 15px;width: 15px;}}
14. 设置轮回眼每个圈,同时设置动画让其变大:
.youYu{position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);}.quan{position: absolute;border-radius: 50%;border: 2px solid #000;z-index: calc(1 - var(--r));animation: zhi 2s ease-out 2s forwards;}@keyframes zhi{0%{top: calc(var(--r) * 1px);left: calc(var(--r) * 1px);right: calc(var(--r) * 1px);bottom: calc(var(--r) * 1px);}100%{top: calc(var(--r) * -35px);left: calc(var(--r) * -35px);right: calc(var(--r) * -35px);bottom: calc(var(--r) * -35px);background-color: rgb(187, 177, 214);}}
z-index: calc(1 - var(--r)); 计算,让最开始的圈显示在最上层。animation:设置动画,让轮回圈慢慢变大,同时变成紫色。
完整代码:
<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>*{margin: 0;padding: 0;box-sizing: border-box;}body{height: 100vh;display: flex;justify-content: center;align-items: center;background-color: #000;}.zuo , .you{ width: 250px;height: 120px;background-color: rgb(255, 255, 255);border-bottom: 5px solid rgb(70, 70, 70);overflow: hidden;position: relative;}.zuo{transform: translateX(-135px);border-radius: 0 120px 0 120px;box-shadow: inset 3px 2px 3px rgba(17, 17, 17, 0.8);}.zuo::after{content: '';position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);width: 95px;height: 95px;border-radius: 50%;border: 2px solid #000;animation: colour 2s linear forwards;}@keyframes colour{0%,30%{background-color: rgb(0, 0, 0);}100%{background-color: rgb(255, 4, 4);}}.zuoZong{position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);width: 0px;height: 0px;border-radius: 50%;background-color: rgb(0, 0, 0);z-index: 1;animation: da 3s linear forwards;}@keyframes da{100%{width: 15px;height: 15px;}}.zuoYu{position: absolute;top: -25px;left: -25px;bottom: -25px;right: -25px;border-radius: 50%;border: 2px solid rgb(0, 0, 0);animation: zhuan 2s linear 2s forwards;opacity: 0;}@keyframes zhuan{100%{opacity: 1;transform: rotate(720deg);}}.zuoYu .yu{position: absolute;width: 15px;height: 15px;border-radius: 50%;background-color: rgb(0, 0, 0);}.zuoYu .yu::after{content: '';position: absolute;top: -6px;left: -1px;width: 6px;height: 20px;border-radius: 50%;border-left: 6px solid rgb(0, 0, 0);}.zuoYu .yu:nth-child(1){animation: yu1 2s ease-in 2s forwards;}@keyframes yu1{0%{opacity: 0;left: 50%;top: 50%;transform:translate(-50%,-50%) scale(0.1) ;}100%{left: 50%;top: -9%;transform: scale(1) rotate(80deg); }} .zuoYu .yu:nth-child(2){animation: yu2 2s ease-in 2s forwards; }@keyframes yu2{0%{opacity: 0;left: 50%;top: 50%;transform: translate(-50%,-50%) scale(0.1) ;}100%{top: 60%;left: -9%;transform: scale(1) rotate(-60deg); }}.zuoYu .yu:nth-child(3){ animation: yu3 2s ease-in 2s forwards;}@keyframes yu3{0%{opacity: 0;right: 50%;top: 50%;transform: translate(-50%,-50%) scale(0.1);}100%{top: 60%;right: -9%;transform: scale(1) rotate(180deg); }}.zuo::before,.you::before{content: '';position: absolute;left: 38%;top: 30%;width: 12px;height: 12px;border-radius: 50%;background-color: rgb(255, 255, 255);z-index: 10;}.you{transform: translateX(135px);border-radius: 120px 0 120px 0;box-shadow: inset -3px 2px 3px rgba(17, 17, 17, 0.8);
/* filter: drop-shadow( 8px -5px 3px rgb(216, 59, 59));*/ }.you::after{content: '';position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);width: 95px;height: 95px;border-radius: 50%;border: 2px solid #000;animation: youcolor 2s linear forwards;}@keyframes youcolor{0%,30%{background-color: rgb(0, 0, 0);}100%{background-color: rgb(144, 130, 183);}}.dian{ position: absolute;top: 50%;left: 50%; background-color: #000;transform: translate(-50%,-50%);border-radius: 50%;z-index: 10;animation: youda 3s linear forwards;}@keyframes youda{0%{height: 0px;width: 0px;}100%{height: 15px;width: 15px;}}.youYu{position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);}.quan{position: absolute;border-radius: 50%;border: 2px solid #000;z-index: calc(1 - var(--r));animation: zhi 2s ease-out 2s forwards;}@keyframes zhi{0%{top: calc(var(--r) * 1px);left: calc(var(--r) * 1px);right: calc(var(--r) * 1px);bottom: calc(var(--r) * 1px);}100%{top: calc(var(--r) * -35px);left: calc(var(--r) * -35px);right: calc(var(--r) * -35px);bottom: calc(var(--r) * -35px);background-color: rgb(187, 177, 214);}}</style>
</head>
<body><!-- 血轮眼 --><div class="zuo"><!-- 眼睛最中间那个黑点 --><div class="zuoZong"><!-- 三勾玉所在的圈 --><div class="zuoYu"><!-- 三个勾玉 --><span class="yu"></span><span class="yu"></span><span class="yu"></span></div></div></div><!-- 轮回眼 --><div class="you"><!-- 眼睛最中间那个黑点 --><div class="dian"></div><!-- 3个轮回圈 --><div class="youYu"> <span class="quan" style="--r:2;"></span><span class="quan" style="--r:3;"></span><span class="quan" style="--r:4;"></span></div> </div>
</body>
</html>
其它:
血轮眼,开~
热烈宣布(敲锣打鼓,手舞足蹈),我的B站账号地址:space.bilibili.com/176586698
泪目( Ĭ ^ Ĭ )
转载自:北极光之夜
https://juejin.cn/post/6955052354664136712
如果觉得这篇文章还不错
点击下面卡片关注我
来个【分享、点赞、在看】三连支持一下吧
“分享、点赞、在看” 支持一波
如何实现一个惊艳女友的血轮眼轮回眼特效相关推荐
- html+css 血轮眼轮回眼特效!
文章目录 html+css 血轮眼轮回眼特效! 1.首先请看效果图(完整代码在最底部) 2.实现(可以跟着一步一步写来实现) 1.先定义基本的标签结构 2.定义左右眼多基本样式 3.开始先定义血轮眼的 ...
- 轮回眼css,纯CSS如何实现血轮眼+轮回眼特效(代码详解)
本篇文章给大家介绍一下使用纯CSS实现血轮眼+轮回眼特效的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所助. 效果(完整代码在底部) 其实实现并不难,都是重复的代码比较多. 实现(可 ...
- 血轮眼轮回眼特效 html+css
效果(完整代码在底部): 实现并不难,都是重复的代码比较多. 实现(可跟着一步一步写): 1. 先定义基本标签: <!-- 血轮眼 --><div class="zuo&q ...
- 【限时删除】一个惊艳的神器,可全网爬取各种资源......
今天,想为大家推荐一款超惊艳的工具,可以用在生活.工作的方方面面,保证瞬间让你找到人生开挂的感觉! 在这之前,先跟大家分享个真实的故事. "这感觉真的是太爽了!" 我朋友小宇前段时 ...
- 【限时删除】一个惊艳的神器,可全网爬取各种资源..........
今天,想为大家推荐一款超惊艳的工具,可以用在生活.工作的方方面面,保证瞬间让你找到人生开挂的感觉! 在这之前,先跟大家分享个真实的故事. "这感觉真的是太爽了!" 我朋友小宇前段时 ...
- 用Python写血轮眼
用python写血轮眼 import turtle turtle.title('血轮眼') #画布标题 turtle.bgcolor("green") #背景颜色 turtle.p ...
- 安利一个惊艳的红楼梦可视化作品
更新:<左手读红楼梦,右手写BUG,闲快活>一文对该数据集进行了分析挖掘,加了许多红楼梦的内容,以及几个书里的黄段子,逃.代码开源在:DesertsX/gulius-projects 直接 ...
- 【Opencv实战】如何快速Get专属头像?惊艳—女友要的头像终于找到了~
导语 ☀Python不仅好用,而且好玩.☀ Ps 小故事 哦?今天又到了三天换一次头像的时间了~ 你是不是在辛苦的在各大头像网站翻来覆去!这不.....女朋友又开始催了: 其实心里的内心活动是这样子的 ...
- 人的一生会遇到三种人,一个惊艳了时光,一个温柔了岁月,一个讲懂了“堆”
堆儿 堆的概念 堆的操作 向下调整 搞一个大堆 向上调整 入堆 出堆 使用Java中的堆 top-K问题 分享一个题目 堆排序 堆的概念 堆就是优先级队列 堆在逻辑上是一棵完全二叉树 堆在物理上是储存 ...
- deepin关机卡桌面_喜大普奔:发现一个惊艳的电脑操作系统Deepin
前些天,我买了一块固态硬盘,准备给用了5年多的笔记本电脑换一下硬盘. 为什么要换硬盘呢? 因为我实在忍受不了它的开机和操作的速度,比乌龟还要慢.在多少个夜晚,我都有买一台新的笔记本电脑冲动,但早上起来 ...
最新文章
- 第一代狗狗币教父联合社区挽救狗狗币,并在国内布道狗狗币三年之久
- Ubuntu11.04在Win7下从硬盘安装 和 使用体验
- http 协议上传文件multipart form-data boundary 说明--转载
- mysql链表_MySql链表语句--博客园老牛大讲堂
- 保姆式参赛教程全公开,居然还送10万奖金?
- 编译MiniGUI 程序
- UOJ#449. 【集训队作业2018】喂鸽子 min-max容斥,FFT
- Vuejs 插值操作
- 严格对角占优矩阵特征值_盖尔金圆定理及严格对角占优矩阵(SDD)
- atom对比 vscode_Atom、Sublime Text、VSCode 三者比较
- 极路由3C【C103B】刷breed再刷老毛子教程
- [程序员学英语]英语句子结构
- 面试经历(纯属个人经历,仅供观看参考)
- 肖飒:币圈新“口袋罪”?
- 腾讯会议怎么录屏?几个步骤轻松录屏
- 钉钉小程序如何判断其当前环境
- 真正福建电信笔试题(专业对口请进)(转载)
- 操作系统之生产者与消费者
- 【vscode】 远程:Unauthorized client refused: auth mismatch)
- 个人一些学习python经历
热门文章
- VSCODE一个阴坑
- 【MC-CNN论文翻译】Computing the Stereo Matching Cost with a Convolutional Neural Network
- ITSM系统核心流程
- 统计思维(实例5)——变量之间的关系
- 服务器网站中断,如何解决无法打开网页及服务器已断开连接的问题?
- (八)Mybatis当中#{}常用属性的用法
- linux7开放3306端口,CentOS 7 开放3306端口
- C++大写字母转小写字母
- 新手必备:网关与网段、IP协议、主机与DNS 、访问控制 资料汇总110篇
- 2×3卡方检验prism_别错过,卡方检验实用总结