我试图围绕一个圆圈旋转三个物体.到目前为止,我已经能够让一个物体围绕圆圈旋转.如果不弄乱代码,我无法获得多个.任何人都可以建议最好的方法来实现这一目标吗?这是代码和小提琴的一部分.谢谢!
这是Demo
.outCircle { width: 200px; height: 200px; background-color: lightblue; left: 270px; position: absolute; top: 50px; -moz-border-radius: 100px; -webkit-border-radius: 100px; border-radius: 100px; } .rotate { width: 100%; height: 100%; -webkit-animation: circle 10s infinite linear; } .counterrotate { width: 50px; height: 50px; -webkit-animation: ccircle 10s infinite linear; } .inner { width: 100px; height: 100px; background: red; -moz-border-radius: 50px; -webkit-border-radius: 50px; border-radius: 100px; position: absolute; left: 0px; top: 0px; background-color: red; display: block; } @-webkit-keyframes circle { from { -webkit-transform: rotateZ(0deg) } to { -webkit-transform: rotateZ(360deg) } } @-webkit-keyframes ccircle { from { -webkit-transform: rotateZ(360deg) } to { -webkit-transform: rotateZ(0deg) } }
<div class="outCircle"> <div class="rotate"> <div class="counterrotate"> <div class="inner">hello </div> </div> </div> </div>
解决方法
Jquery解决方案适用于任何数量的外部项目.
Jquery从ThiefMaster♦无耻地偷走了他们在Q & A的回答
var radius = 100; // adjust to move out items in and out var fields = $('.item'),container = $('#container'),width = container.width(),height = container.height(); var angle = 0,step = (2 * Math.PI) / fields.length; fields.each(function() { 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 (window.console) { console.log($(this).text(),x,y); } $(this).css({ left: x + 'px',top: y + 'px' }); angle += step; });
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; } .item { width: 30px; height: 30px; line-height: 30px; text-align: center; border-radius: 50%; position: absolute; background: #f00; animation: spin 10s linear infinite reverse; } @keyframes spin { 100% { transform: rotate(1turn); } }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="container"> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div> </div>