为了账号安全,请及时绑定邮箱和手机立即绑定

css如何让元素平均分布在圆上

css如何让元素平均分布在圆上

慕容708150 2019-02-19 17:18:02
如何已知圆中心有一个relative的点,现在for循环一些absolute的浮动子元素在里面,如何让这些子元素完美分布在圆上,等差是没用的,用弧度公式也没成功,求大神解答
查看完整描述

1 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

<style>

    .zh-circle{position: relative;width: 240px;height: 240px;border-radius: 50%;border: 1px solid #f00;box-sizing: border-box;margin: 100px auto 0;}

    .zh-circle li{position: absolute;z-index: 2;left: 50%;top: 0;width: 40px;height: 40px;margin: -20px 0 0 -20px;border: 1px solid #f00;border-radius: 50%;box-sizing: border-box;list-style: none;transform-origin: 20px 140px;}

</style>

<ul class="zh-circle">

    <!-- <li></li> -->

</ul>

<script>

    var liSize = 10,

        li = '';

    for(var i=0; i<liSize; i++) {

        li += '<li style="transform: rotate('+360/liSize*i+'deg)"></li>';

    }

    $('.zh-circle').html(li);

</script>

https://img1.sycdn.imooc.com//5c7353bf0001b35503190318.jpg

描述一下:
1、transform-origin: x y z; 设置旋转中心点,示例中为什么是20px 140px呢,正常情况下是0 120px的,但前端做了margin向上向左偏移20px,所以这里需要加回来。

2、360/liSize*i 设置叠加旋转角度


查看完整回答
反对 回复 2019-02-25
  • 1 回答
  • 0 关注
  • 1277 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信