Rumah >hujung hadapan web >tutorial css >Bagaimana untuk Memutar Berbilang Objek Di Sekitar Bulatan Menggunakan CSS dan JavaScript?

Bagaimana untuk Memutar Berbilang Objek Di Sekitar Bulatan Menggunakan CSS dan JavaScript?

Patricia Arquette
Patricia Arquetteasal
2024-12-07 11:46:20128semak imbas

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

Memutar Berbilang Objek Mengelilingi Bulatan Menggunakan CSS

Dalam percubaan untuk mencipta animasi di mana berbilang objek berputar di sekeliling bulatan, didapati bahawa hanya satu objek berputar dengan betul. Artikel ini bertujuan untuk memberi panduan tentang menyelesaikan isu ini untuk memastikan semua objek yang diingini berputar dengan lancar di sekeliling bulatan.

Kod dan Pelaksanaan Sedia Ada

Kod yang disediakan melibatkan "outCircle " div yang bertindak sebagai pusat putaran, dan di dalamnya, div "putar" bersarang mengandungi objek yang akan dianimasikan. Menggunakan animasi CSS3, div "putar" dikonfigurasikan untuk berputar selama-lamanya di sekitar "outCircle." Walau bagaimanapun, percubaan untuk menambah objek tambahan dalam div "putar" mengakibatkan tingkah laku yang tidak diingini.

Penyelesaian

Untuk menangani isu ini, pendekatan berasaskan JavaScript adalah lebih sesuai untuk mengendalikan berbilang putaran objek:

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;
});

Tambahan Pertimbangan

Selain itu, CSS3 boleh digunakan untuk mengkonfigurasi tingkah laku animasi:

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
  }
}

Contoh

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>

Pendekatan ini menyediakan penyelesaian yang fleksibel dan berskala untuk memutarkan sebarang bilangan objek di sekeliling bulatan menggunakan CSS3 dan JavaScript.

Atas ialah kandungan terperinci Bagaimana untuk Memutar Berbilang Objek Di Sekitar Bulatan Menggunakan CSS dan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn