溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CSS和D3怎么實現用文字組成的心形動畫效果

發布時間:2022-02-24 14:42:53 來源:億速云 閱讀:251 作者:小新 欄目:web開發

小編給大家分享一下CSS和D3怎么實現用文字組成的心形動畫效果,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

  代碼解讀

  定義dom,容器中包含3個子元素,每個子元素中有一個單詞:

  <divclass="love">

  <span>aaa</span>

  <span>bbb</span>

  <span>ccc</span>

  </div>

  居中顯示:

  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庫:

  <scriptsrc="https://d3js.org/d3.v5.min.js"></script>

  聲明一個數組,包含若干單詞:

  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',

  '&Alpha;&gamma;?&pi;&eta;','??','Liefde','Dashuri','Каханне',

  'Ljubav','L&aacute;ska','Armastus','Mahal','????',

  'Szerelem','Gr&aacute;','Mīlestība','Meil?','Любов',

  '?убовта','Cinta','???','Dragoste','L&aacute;ska',

  'Renmen','???','muna&ntilde;a','Sevgi','?убав',

  'karout','am&agrave;','am&ocirc;r','k&aelig;rleiki','mborayhu',

  'Upendo','s&ograve;&ograve;yayy&agrave;&agrave;','ljubav','???','с?ю',

  'с?й??','tia','aroha','KHAIR','?????',

  'kj&aelig;rlighet','munay','jecel','K&auml;rlek','soymek',

  'Mahal','ярату','????','sopp','uthando',

  '???????','A?k','T&igrave;nhy&ecirc;u','????'];

  最后,為第1個單詞設置特殊的文字樣式:

  .lovespan:first-child{

  color:orangered;

  font-size:3em;

  text-shadow:

  000.1emblack,

  001emwhite;

  z-index:1;

  }

CSS和D3怎么實現用文字組成的心形動畫效果

以上是“CSS和D3怎么實現用文字組成的心形動畫效果”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女