css盒心形的代码过程,如何使用CSS和D3实现用文字组成的心形动画效果(附代码)...
本篇文章给大家带来的内容是关于如何使用CSS和D3实现用文字组成的心形动画效果(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
效果预览
源代码下载
https://github.com/comehope/front-end-daily-challenges
代码解读
定义 dom,容器中包含 3 个子元素,每个子元素中有一个单词:
aaa
bbb
ccc
居中显示:body {
margin: 0;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
background-color: black;
}
定义容器尺寸:.love {
width: 450px;
height: 450px;
}
设置文本样式:.love {
position: relative;
}
.love span {
position: absolute;
left: 0;
color: goldenrod;
font-size: 20px;
font-family: sans-serif;
text-shadow: 0 0 1em white;
}
定义文本左右往复移动的动画:.love span {
animation: x-move 10s ease-in-out infinite alternate;
}
@keyframes x-move {
to {
left: 450px;
}
}
定义子元素的下标变量,设置动画延时,使各单词依次入场:.love {
--particles: 3;
}
.love span {
animation-delay: calc(20s / var(--particles) * var(--n) * -1);
}
.love span:nth-child(1) {
--n: 1;
}
.love span:nth-child(2) {
--n: 2;
}
.love span:nth-child(3) {
--n: 3;
}
增加文本沿心形运动的动画效果:.love span {
animation:
x-move 10s ease-in-out infinite alternate,
y-move 20s linear infinite;
}
@keyframes y-move {
0% { transform: translateY(180px); }
10% { transform: translateY(45px); }
15% { transform: translateY(5px); }
18% { transform: translateY(0); }
20% { transform: translateY(5px); }
22% { transform: translateY(35px); }
24% { transform: translateY(65px); }
25% { transform: translateY(110px); }
26% { transform: translateY(65px); }
28% { transform: translateY(35px); }
30% { transform: translateY(5px); }
32% { transform: translateY(0); }
35% { transform: translateY(5px); }
40% { transform: translateY(45px); }
50% { transform: translateY(180px); }
71% { transform: translateY(430px); }
72.5% { transform: translateY(440px); }
75% { transform: translateY(450px); }
77.5% { transform: translateY(440px); }
79% { transform: translateY(430px); }
100% { transform: translateY(180px); }
}
接下来用 d3 批量处理 dom 元素和 css 变量。
引入 d3 库:
声明一个数组,包含若干单词:const words = ['aaa', 'bbb', 'ccc'];
用 d3 创建 dom 元素:d3.select('.love')
.selectAll('span')
.data(words)
.enter()
.append('span')
.text((d) => d);
用 d3 为 css 变量赋值:d3.select('.love')
.style('--particles', words.length)
.selectAll('span')
.data(words)
.enter()
.append('span')
.style('--n', (d, i) => i + 1)
.text((d) => d);
删除 html 文件中相关的 dom 元素和 css 文件中相关的 css 变量。
把数组元素改为“爱”在各种语言的单词:const words = [
'愛', 'Love', 'Amour', 'Liebe', 'Amore',
'Amor', 'Любовь', 'الحب', 'प्यार', 'Cinta',
'Αγάπη', '사랑', 'Liefde', 'Dashuri', 'Каханне',
'Ljubav', 'Láska', 'Armastus', 'Mahal', 'אהבה',
'Szerelem', 'Grá', 'Mīlestība', 'Meilė', 'Любов',
'Љубовта', 'Cinta', 'عشق', 'Dragoste', 'Láska',
'Renmen', 'ፍቅር', 'munaña', 'Sevgi', 'Љубав',
'karout', 'amà', 'amôr', 'kærleiki', 'mborayhu',
'Upendo', 'sòòyayyàà', 'ljubav', 'Սեր', 'сүю',
'сүйүү', 'tia', 'aroha', 'KHAIR', 'प्रेम',
'kjærlighet', 'munay', 'jecel', 'Kärlek', 'soymek',
'Mahal', 'ярату', 'محبت', 'sopp', 'uthando',
'ความรัก', 'Aşk', 'Tình yêu', 'ליבע'];
最后,为第 1 个单词设置特殊的文字样式:.love span:first-child {
color: orangered;
font-size: 3em;
text-shadow:
0 0 0.1em black,
0 0 1em white;
z-index: 1;
}
相关推荐:
css盒心形的代码过程,如何使用CSS和D3实现用文字组成的心形动画效果(附代码)...相关推荐
- html鱼动画游戏代码,如何使用CSS和D3实现小鱼游动的交互动画(附代码)
本篇文章给大家带来的内容是关于如何使用CSS和D3实现小鱼游动的交互动画(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 效果预览 源代码下载 https://github. ...
- php设置加载动画,如何用CSS3制作页面圆圈加载动画(附代码)
打开页面时,经常会遇到页面正在加载的情况,作为一个前端工程师,你知道如何用CSS3实现页面加载动画效果吗?这篇文章就和大家分享一个炫酷的圆圈加载动画效果的代码,有一定的参考价值,感兴趣的朋友可以看看. ...
- html右移动动画效果,图片的左右移动,js动画效果实现代码
图片的左右移动,js动画效果实现代码 图片的左右移动,动画效果的实现 =(xk+xp)/2) { if (smer == 1) step--; else step++; } else { if (sm ...
- MATLAB坐标系变换动画gif(附代码):坐标系旋转动画+坐标系平移动画代码
MATLAB坐标系变换动画gif(附代码) 以之前的文章中的例题为例,绘制一个向量和一个运动坐标系在空间中的变换过程,并生成gif动画. 已知坐标系{B}的初始位姿与{A}重合,首先{B}相对于{A} ...
- android金币动效_Android 仿余额宝数字跳动动画效果完整代码
一:想都不用想的,有图有真相,看着爽了,在看下面源码 二:实例源码分析 ①:首先定义接口 package com.demo.tools.view; /** * 数字动画自定义 * * @author ...
- 右上角鼠标滑过展开收缩动画效果js代码的演示页面
http://files.cnblogs.com/files/tanlingdangan/top_right.rar.gz 右上角鼠标滑过展开收缩动画效果js代码的演示页面http://www.51x ...
- 好看的多级菜单html,jQuery实现美观的多级动画效果菜单代码
本文实例讲述了jQuery实现多级动画效果菜单代码.分享给大家供大家参考.具体如下: 这是基于jQuery实现的一款多级动画菜单源代码,动画效果流畅,确实不错的动画菜单,欢迎大家试用.这种菜单 一般应 ...
- android 文字跳动动画,Android 仿余额宝数字跳动动画效果完整代码
Android 仿余额宝数字跳动动画效果完整代码 发布时间:2020-08-24 06:55:30 来源:脚本之家 阅读:120 作者:曾淘 一:想都不用想的,有图有真相,看着爽了,在看下面源码 二: ...
- android仿微信红包动画,Android仿打开微信红包动画效果实现代码
首先看下效果: 实现原理: 准备3张不同角度的图片,通过AnimationDrawable帧动画进行播放即可 代码实现: 1.编写动画xml文件: 根标签为animation-list,其中onesh ...
最新文章
- memset()的效率以及源码分析
- 各个 Android Gradle 插件版本所需的 Gradle 版本
- Facts have proved that this is more popular than his article
- 《计算机网络》学习笔记 ·007【无线网络】
- hdu 6088 Rikka with Rock-paper-scissors (2017 多校第五场 1004) 【组合数学 + 数论 + 模意义下的FFT】...
- 浅析如何让Spring 来管理Action的配置方法
- Android 抓包工具
- qq服务器正在升级维护中,建议您稍后再尝试打开.谢谢!,用友通维护锦集
- SYN包与SYN攻击原理
- 阿里云服务器被恶意程序攻击
- 为Visual Studio创建项目模板(VSIX / C#/ 2019)
- document.onclick是什么
- mysql多表关联查询慢_mysql数据库多表关联查询的慢SQL优化
- instagram架构_提升Instagram销量的8条秘诀
- ListView 实现阻尼回弹效果 并去除边缘阴影
- Git代码管理流程(分支、fork、tag)
- 与大数据相关热门岗位有什么?
- excel筛选情况下数字下拉递增的方法
- Kindeditor 图片粘贴上传后设置图片属性
- 三月已逝,接下来是忙碌的四月
热门文章
- 关于物联网卡,您想了解的都在这里
- 记事狗微博php,记事狗微博系统_366rtc
- 前端des加密,后端des解密
- word 去除页眉默认的横线及python操作分析
- 那些年踩过的坑-之《Android Q-高通平台UAC(USB Audio Class)调试记录》
- [图像处理-1]:颜色中英文对照表 颜色名字 色彩名称
- MongoDB可视化工具之Studio 3T的使用
- 计算机科学类专升本复习之“C语言结构体”详解(初稿)
- 阿里系App抓包详细分析
- C++图片格式转换:BMP转JPEG