千家信息网

CSS和D3怎么实现用文字组成的心形动画效果

发表于:2024-11-21 作者:千家信息网编辑
千家信息网最后更新 2024年11月21日,小编给大家分享一下CSS和D3怎么实现用文字组成的心形动画效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!代码解读定义d
千家信息网最后更新 2024年11月21日CSS和D3怎么实现用文字组成的心形动画效果

小编给大家分享一下CSS和D3怎么实现用文字组成的心形动画效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

  代码解读

  定义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;

  }

  .lovespan{

  position:absolute;

  left:0;

  color:goldenrod;

  font-size:20px;

  font-family:sans-serif;

  text-shadow:001emwhite;

  }

  定义文本左右往复移动的动画:

  .lovespan{

  animation:x-move10sease-in-outinfinitealternate;

  }

  @keyframesx-move{

  to{

  left:450px;

  }

  }

  定义子元素的下标变量,设置动画延时,使各单词依次入场:

  .love{

  --particles:3;

  }

  .lovespan{

  animation-delay:calc(20s/var(--particles)*var(--n)*-1);

  }

  .lovespan:nth-child(1){

  --n:1;

  }

  .lovespan:nth-child(2){

  --n:2;

  }

  .lovespan:nth-child(3){

  --n:3;

  }

  增加文本沿心形运动的动画效果:

  .lovespan{

  animation:

  x-move10sease-in-outinfinitealternate,

  y-move20slinearinfinite;

  }

  @keyframesy-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库:

  

  声明一个数组,包含若干单词:

  constwords=['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变量。

  把数组元素改为"爱"在各种语言的单词:

  constwords=[

  '愛','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ìnhyêu','ליבע'];

  最后,为第1个单词设置特殊的文字样式:

  .lovespan:first-child{

  color:orangered;

  font-size:3em;

  text-shadow:

  000.1emblack,

  001emwhite;

  z-index:1;

  }


以上是"CSS和D3怎么实现用文字组成的心形动画效果"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

元素 动画 单词 变量 心形 效果 文字 文本 篇文章 个子 内容 容器 数组 文件 样式 特殊 接下来 下标 不怎么 义子 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 腾讯云香港服务器域名要备案吗 方舟手游龙珠服务器怎么进去 嘉欣网络技术有限公司招聘 怎么样游戏软件开发 国家网络安全科创信息 工业网络技术跟工业互联网 云计算的网络安全问题研究 软件开发 需求分析工具 云服务器是一直运行状态的吗 cago韩国服务器维护 php数据库分页显示12345 php抓取百度搜索数据库 平果市互联网科技孵化中心项目 二调城镇数据库建库标准 江北专业软件开发工程 vb数据库怎么写 大学教授讲网络安全 苹果注册id 无法联系服务器 江阴工程软件开发资费 软件开发电脑需要学什么 联想服务器管理口ip更改 地图坐标 数据库下载 浙江戴尔服务器维修虚拟主机 崇明区品质数据库收费标准 qt 读取数据库数据 怎么导入数据库 元气骑士登录显示无法连接服务器 上海网络软件开发代理品牌 软件开发大学是什么专业 邢台进销存软件开发服务商
0