海特行者 的个人主页 注册

【原创】【聊代码】第八十八集 css样式(之五十八)自旋转的八个小图呈圆形排列

导语:

修改
字体调整: | |

发表于2022年09月16号 20点 阅读 5891 评论0 点赞14 ©著作权归作者所有

聊代码(第八十八集)css样式(之五十八)

       我们在这几集都讨论各种不同样式的旋转。本集,制作一个八幅小图在背景图的圆周上进行自转的动画,这和上两集介绍的旋转不同,小图是围绕着自己的圆心旋转的,故曰“自转”。

       多图在同一圆周上,必然要求均匀分布。在圆周上有八个图,自然就要有八个座标点。本集,我主要说的就是如何确定座标。

       拿出一张纸,画个圆,并在圆周上标八个点(为了我说得明白,请将这八个点都标上名字,按照时钟位置,依次将12点、3点、6点、9点处分别标为大写的A、B、C、D,再将1、2点、4、5点、7、8点、10、11点之间处分别标为小写的a、b、c、d)。假定圆的直径为400(我推荐这个值,过大过小均不宜),x轴为圆的上端切线,y轴为圆的左侧切线(请注意,我在此处违背常理,把y轴原点以下定为正数,因为 top 的值是越往下越大)。

       从这个图以及点的布局看,无须解释,A点的座标是(200,0),B点的座标是(400,200),C点的座标是(200,400),D点的座标是(0,200)。对于a、b、c、d 点的座标确定,我要多说几句了。可不是取中间值啊!例如:如果把 a 点的座标定为(300,100), b 点的座标定为(300,300), c 点的座标定为(100,300), d 点的座标定为(100,100),这四个点就不在圆周上了,与 A、B、C、D 点形成的是矩形轨迹,这当然不是我们所需要的。稍有一点几何知识的人都能很直观的看出,它们的座标应该是 a(350,50),b(350,350),c(50,350),d(50,50)。

       座标值确定之后,就可以用到代码当中了,八个小图围成了一个圆。这个圆在页面上十有八九位置不当。而且,它与背景图也不吻合。无论是背景图还是八个小图,都需要重新定位。首先是把背景图定位好,然后再定位八个小图。给八个小图定位意味着要修改它们的座标,分两步:第一步先修改横座标(即 left 的值),八个小图的 left 值要加减同一个数。横向定位好之后,进行第二步,修改纵座标(即 top 的值),当然也是八个小图的 top 值要加减同一个数啦!修改座标,谁先谁后均可。

       八幅小图在背景图的圆周上自转效果。

 

 

 

       代码:

<div align="center">
<style type="text/css">.背景图片{
position: relative;top: 20px; left: 0px;
margin: 0 auto;
border-radius: 50%;
background-image:url(http://img2.oldkids.cn/upload/2017/10/04/blog_20171004143206529.gif);
width: 460px; height: 460px;
}
.旋转图 img{
position: absolute;
width: 180px; height: 180px;
transform-origin:50% 50%;
animation: 转 6s linear infinite;
}
@keyframes 转{
0%{transform:rotate(0deg);}
100%{transform:rotate(-360deg);}
}
.wheelpicfour {top:-50px; left:150px;}
.wheelpicseven{top:0px; left:300px;}
.wheelpictwo{top:150px; left:350px;}
.wheelpicsix{top:300px; left:300px;}
.wheelpicone{ top:350px; left:150px; }
.wheelpicfive{ top:300px; left:0px; }
.wheelpicthree{ top:150px; left:-50px; }
.wheelpiceight{ top:0px; left:0px;
}
</style>
<div class="背景图片">
<div class="旋转图"><img class="wheelpicone"
src="http://www.oldkids.cn/upload/2018/09/25/blog_20180925095850770.png" / ><img class="wheelpictwo" src="http://www.oldkids.cn/upload/2018/09/25/blog_20180925095850770.png" /><img class="wheelpicthree" src="http://www.oldkids.cn/upload/2018/09/25/blog_20180925095850770.png" /> <img class="wheelpicfour" src="http://www.oldkids.cn/upload/2018/09/25/blog_20180925095850770.png" /> <img class="wheelpicfive" src="http://www.oldkids.cn/upload/2018/09/25/blog_20180925095850770.png" /> <img class="wheelpicsix" src="http://www.oldkids.cn/upload/2018/09/25/blog_20180925095850770.png" /> <img class="wheelpicseven" src="http://www.oldkids.cn/upload/2018/09/25/blog_20180925095850770.png" /> <img class="wheelpiceight" src="http://www.oldkids.cn/upload/2018/09/25/blog_20180925095850770.png" />
</div>
</div>

 

       代码解析:

       position: relative;top: 20px; left: 0px; 背景图相对定位。

       border-radius: 50% 圆角代码,使背景图呈圆形轮廓。

       position: absolute; center;旋转图绝对定位,使其保持圆形布局。

       transform-origin:50% 50% 规定原点位置,使小图旋转轴心在圆心。

       animation:转 6s linear infinite 规定动画类型为旋转;设定完成动画一个周期所需秒数;设定动作无限循环。

       wheelpicfour {top:-50px; left:150px; 类似于这样的代码有八个,系小图座标。

       设置座标可以使小图组成矩形、菱形、圆形、椭圆形、三角形、六角形以及不规则等多种形状,朋友们可以一试。

(注:您的设备不支持flash)

声明:以上内容仅用户个人行为,不代表本站(老小孩社区)观点,如有侵权或其他行为用户自己承担相关责任与本站无关。【举报文章】
点赞14 收藏 1 推送到圈子 分享
微信扫二维码分享

等14人点赞

本文作者

海特行者

与友共欢

加好友
评论字体大小调节: | |

精选留言

您需要登录后才能回复

登录立即注册

    暂时没有留言

请选择你想添加的收藏夹

新建收藏夹

收藏夹名称

©2017 老小孩网站版权所有 | 沪ICP备08012383号    举报电话:021-64323922
×
×