作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个元素,我正在创建一些行星,它们需要旋转。我是初学者,目前在学校。我发现了一些旋转的代码,但它开始跳过。另一种方法是让它交替旋转,但这看起来不对。
如何使用 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(/image/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>
最佳答案
您需要使宽度400%
而不是 200%
而不是 cover
使用 auto 100%
.
我对代码进行了一些优化,以便您可以轻松调整尺寸并保持圆形:
.earth {
width: 300px;
display:inline-block;
margin: 5px;
overflow: hidden;
border-radius: 50%;
box-shadow: 0 0 20px 20px #000 inset, 0 0 20px 2px #000;
position:relative;
}
.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::before {
content: "";
display: block;
width: 400%;
padding-top:100%;
animation: spin 3s linear infinite;
background: url(https://github.com/BHouwens/SolarSim/blob/master/images/earthmap1k.jpg?raw=true);
background-size: auto 100%;
}
@keyframes spin {
to {
transform: translateX(-50%);
}
}
<div class="earth">
</div>
<div class="earth" style="width:200px">
</div>
<div class="earth" style="width:100px">
</div>
.earth {
--d:300px;
width: var(--d);
height:var(--d);
display:inline-block;
margin: 5px;
border-radius: 50%;
box-shadow: -20px -20px 50px 2px #000 inset, 0 0 20px 2px #000;
background:
url(/image/3SLqF.jpg)
0/auto 100%;
animation: spin 3s linear infinite;
}
@keyframes spin {
to {
background-position:200% 0;
}
}
<div class="earth">
</div>
<div class="earth" style="--d:200px">
</div>
<div class="earth" style="--d:100px">
</div>
关于html - 用 CSS 旋转行星,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61689623/
我正在开发一款涉及绕行星移动的游戏,目前已经让玩家使用前进和后退的方式朝一个方向移动: if( forward) yAngle = yAngle + 0.005f; if( backward)
我正在尝试为带有柏林噪声的球形行星生成高度图。我怎样才能使它具有无缝的左/右边框?我平滑了极点的高度图,但无法理解如何循环左右两侧。 这是我目前喜欢的纹理: 最佳答案 镜像(按 y 轴) 这非常适合制
我是一名优秀的程序员,十分优秀!