我有一个项目,我正在创造一些行星,他们需要旋转。我是一个初学者目前在学校。我发现一些代码,旋转,但它开始跳过。替代方案是让它交替旋转,但然后看起来不正确。
我如何用CSS修复这个问题?
.earth {
width: 300px;
height: 300px;
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
overflow: hidden;
border-radius: 50%;
box-shadow: 0 0 20px 20px #000 inset, 0 0 20px 2px #000;
}
.earth:after {
position: absolute;
content: "";
top: 0;
bottom: 0;
left: 0;
right: 0;
box-shadow: -20px -20px 50px 2px #000 inset;
border-radius: 50%;
}
.earth > div {
width: 200%;
height: 100%;
animation: spin 30s linear infinite;
background: url(https://i.stack.imgur.com/3SLqF.jpg);
/*orginal image at https://upload.wikimedia.org/wikipedia/commons/thumb/c/c4/Earthmap1000x500compac.jpg/640px-Earthmap1000x500compac.jpg */
background-size: cover;
}
@keyframes spin {
to {
transform: translateX(-50%);
}
}
<div class="earth">
<div></div>
</div>
以下是该期刊的GIF图像:https://imgur.com/a/f7nUtrW//
3条答案
按热度按时间jgovgodb1#
您需要使宽度为
400%
而不是200%
,并使用auto 100%
代替cover
。我对代码进行了一些优化,这样您就可以轻松地调整尺寸并保持圆形:
也像下面的代码少,没有伪元素:
一个二个一个一个
ndasle7k2#
可以向关键帧添加两个指定x位置的阶段,如下所示:
我添加了一个代码片段,结果如下:
x一个一个一个一个x一个一个二个x
kr98yfug3#
你可以看到我的尝试here,和accompanying article!这里是哈巴狗(sass是数百行)