首頁 web前端 css教學 如何使用 CSS 和 JavaScript 繞圓旋轉多個物件?

如何使用 CSS 和 JavaScript 繞圓旋轉多個物件?

Dec 07, 2024 am 11:46 AM

How to Rotate Multiple Objects Around a Circle Using CSS and JavaScript?

使用CSS 繞圓旋轉多個物件

在嘗試創建多個物件繞圓旋轉的動畫時,遇到了只有一個物體旋轉正確。本文旨在提供解決此問題的指導,以確保所有所需的物件圍繞圓圈無縫旋轉。

現有程式碼和實作

提供的程式碼涉及「outCircle」充當旋轉中心的div,在其中,巢狀的「旋轉」div 包含要設定動畫的對象。使用 CSS3 動畫,「旋轉」div 配置為圍繞「outCircle」無限旋轉。但是,嘗試在「旋轉」div 中新增其他物件會導致不良行為。

解決方案

要解決此問題,基於JavaScript 的方法更合適用於處理多個物件旋轉:

var radius = 100; // Adjust to place items closer or farther from the center
var fields = $('.item'); // Target the objects to be rotated
var container = $('#container'); // Parent div encasing the rotating objects
var width = container.width();
var height = container.height();
var angle = 0;
var step = (2 * Math.PI) / fields.length; // Calculate the angular separation between objects

fields.each(function() {
  // Calculate the coordinates for each object based on its position in the circle
  var x = Math.round(width / 2 + radius * Math.cos(angle) - $(this).width() / 2);
  var y = Math.round(height / 2 + radius * Math.sin(angle) - $(this).height() / 2);
  if (console) {
    console.log($(this).text(), x, y); // Display coordinates for debugging
  }

  $(this).css({
    left: x + 'px', // Set the left position
    top: y + 'px', // Set the top position
  });

  // Increment the angle based on the spacing between objects
  angle += step;
});
登入後複製

附加註意事項

此外,CSS3可用於設定動畫行為:

body {
  padding: 2em;
}

#container {
  width: 200px;
  height: 200px;
  margin: 10px auto;
  border: 1px solid #000;
  position: relative;
  border-radius: 50%;
  animation: spin 10s linear infinite; //  Define the animation duration and direction
}

.item {
  width: 30px;
  height: 30px;
  line-height: 30px;
  text-align: center;
  border-radius: 50%;
  position: absolute;
  background: #f00;
  animation: spin 10s linear infinite reverse; //  Reverse the animation for each object
}

@keyframes spin {
  100% {
    transform: rotate(1turn); //  Rotate the objects one full turn
  }
}
登入後複製

範例

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
登入後複製

此方法提供一個靈活且可擴展的解決方案,用於使用CSS3 和JavaScript 繞圓旋轉任意數量的物件。

以上是如何使用 CSS 和 JavaScript 繞圓旋轉多個物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

兩個點博物館:邦格荒地地點指南
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

兩個點博物館:邦格荒地地點指南
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

將框陰影添加到WordPress塊和元素 將框陰影添加到WordPress塊和元素 Mar 09, 2025 pm 12:53 PM

將框陰影添加到WordPress塊和元素

使用智能表單框架創建JavaScript聯繫表格 使用智能表單框架創建JavaScript聯繫表格 Mar 07, 2025 am 11:33 AM

使用智能表單框架創建JavaScript聯繫表格

創建一個具有可滿足屬性的內聯文本編輯器 創建一個具有可滿足屬性的內聯文本編輯器 Mar 02, 2025 am 09:03 AM

創建一個具有可滿足屬性的內聯文本編輯器

使您的第一個自定義苗條過渡 使您的第一個自定義苗條過渡 Mar 15, 2025 am 11:08 AM

使您的第一個自定義苗條過渡

比較5個最佳的PHP形式構建器(和3個免費腳本) 比較5個最佳的PHP形式構建器(和3個免費腳本) Mar 04, 2025 am 10:22 AM

比較5個最佳的PHP形式構建器(和3個免費腳本)

在node.js中使用multer上傳並上傳express 在node.js中使用multer上傳並上傳express Mar 02, 2025 am 09:15 AM

在node.js中使用multer上傳並上傳express

最佳CSS動畫和對Codecanyon 2025的影響(免費支付) 最佳CSS動畫和對Codecanyon 2025的影響(免費支付) Mar 01, 2025 am 09:32 AM

最佳CSS動畫和對Codecanyon 2025的影響(免費支付)

使用GraphQL緩存 使用GraphQL緩存 Mar 19, 2025 am 09:36 AM

使用GraphQL緩存

See all articles