91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

怎么使用CSS和D3實現一個舞動的畫面

發布時間:2022-03-02 14:50:51 來源:億速云 閱讀:122 作者:小新 欄目:web開發

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

  代碼解讀

  定義dom,容器中包含1個.square子容器,子容器中包含4個<span>,每個<span>代表一個對角扇形:

  <figureclass="container">

  <divclass="square">

  <span></span>

  <span></span>

  <span></span>

  <span></span>

  </div>

  </figure>

  居中顯示:

  body{

  margin:0;

  height:100vh;

  display:flex;

  align-items:center;

  justify-content:center;

  background-color:#222;

  }

  設置容器的尺寸單位,1em等于8px:

  .container{

  font-size:8px;

  }

  子容器中的4個<span>不設寬高,只設邊框,其中第1個和第4個<span>只取左右邊框,第2個和第3個<span>只取上下邊框:

  .squarespan{

  display:block;

  border:2.5emsolidtransparent;

  color:#ddd;

  }

  .squarespan:nth-child(1),

  .squarespan:nth-child(4){

  border-left-color:currentColor;

  border-right-color:currentColor;

  }

  .squarespan:nth-child(2),

  .squarespan:nth-child(3){

  border-top-color:currentColor;

  border-bottom-color:currentColor;

  }

  把邊框改為圓弧:

  .squarespan{

  border-radius:50%;

  }

  在子容器中用grid布局把4個<span>設置為2*2的網格:

  .square{

  display:grid;

  grid-template-columns:repeat(2,1fr);

  grid-gap:0.2em;

  padding:0.1em;

  }

  旋轉4個<span>,使它們圍合成一個正方形,看起來像一個花朵,算式的結果是45度,寫成這樣是為了和接下來的動畫的算式的形式保持一致:

  .squarespan{

  transform:rotate(calc(45deg+90deg*0));

  }

  增加讓<span>旋轉的動畫,整個動畫過程旋轉4次,每次旋轉90度,4次旋轉之后即返回原位:

  .squarespan{

  animation:rotation2sease-in-outinfinite;

  }

  @keyframesrotation{

  0%{transform:rotate(calc(45deg+90deg*0));}

  25%{transform:rotate(calc(45deg+90deg*1));}

  50%{transform:rotate(calc(45deg+90deg*2));}

  75%{transform:rotate(calc(45deg+90deg*3));}

  100%{transform:rotate(calc(45deg+90deg*4));}

  }

  使其中2個<span>朝相反的方向運動:

  .squarespan:nth-child(2),

  .squarespan:nth-child(3){

  animation-direction:reverse;

  }

  至此,一個.square子容器的動畫已經完成,接下來制作4個.square的動畫。

  在dom中再增加3組.square子容器:

  <figureclass="container">

  <divclass="square">

  <span></span>

  <span></span>

  <span></span>

  <span></span>

  </div>

  <divclass="square">

  <span></span>

  <span></span>

  <span></span>

  <span></span>

  </div>

  <divclass="square">

  <span></span>

  <span></span>

  <span></span>

  <span></span>

  </div>

  <divclass="square">

  <span></span>

  <span></span>

  <span></span>

  <span></span>

  </div>

  </figure>

  用grid布局把4個.square布局成網格狀,變量--columns是網格的邊長,即每邊有2個.square子容器:

  .container{

  display:grid;

  --columns:2;

  grid-template-columns:repeat(var(--columns),1fr);

  }

  現在看起來好像是有幾個黑色的小方塊在不停地移動,當dom元素越多時,動畫效果看起來就越壯觀,就像集體舞一樣,人越多越有氣勢。接下來用d3批量增加dom的元素。

  引入d3庫:

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

  聲明一個COLUMNS常量,表示網格的邊長:

  constCOLUMNS=2;

  刪除掉html文件中的.square子元素,改為用d3動態創建:

  d3.select('.container')

  .selectAll('p')

  .data(d3.range(COLUMNS*COLUMNS))

  .enter()

  .append('p')

  .attr('class','square');

  繼續用連綴語法增加<span>子元素:

  d3.select('.container')

  .selectAll('p')

  .data(d3.range(COLUMNS*COLUMNS))

  .enter()

  .append('p')

  .attr('class','square')

  .selectAll('span')

  .data(d3.range(4))

  .enter()

  .append('span');

  刪除掉css文件中的--columns變量聲明,改為用d3動態聲明:

  d3.select('.container')

  .style('--columns',COLUMNS)

  /*略*/

  最后,把邊長改為4,即讓16個.square一起動畫:

  constCOLUMNS=4;


怎么使用CSS和D3實現一個舞動的畫面

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

向AI問一下細節

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

AI

阿克陶县| 独山县| 敖汉旗| 长白| 呈贡县| 潼南县| 上栗县| 公主岭市| 共和县| 高密市| 潮州市| 邯郸市| 楚雄市| 藁城市| 兰西县| 罗平县| 中宁县| 朔州市| 绍兴市| 黎川县| 沂南县| 怀集县| 叙永县| 宣汉县| 板桥市| 高陵县| 革吉县| 鹤山市| 垦利县| 衡南县| 大宁县| 蒲江县| 七台河市| 阿图什市| 博爱县| 页游| 攀枝花市| 霍山县| 苏州市| 平泉县| 上栗县|