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 중국어 웹사이트의 기타 관련 기사를 참조하세요!