继续跟着b站大佬pink老师学大屏可视化
球体模块制作
1.球体模块布局
HTML
<div class="column">
<div class="no">
<div class="no-hd">
<ul>
<li>125811</li>
<li>104563</li>
</ul>
</div>
<div class="no-bd">
<ul>
<li>前端需求人数</li>
<li>市场供应人数</li>
</ul>
</div>
</div>
<div class="map">
<div class="map1"></div>
</div>
</div>
CSS
使用定位直接定位模块的位置,使用背景大小进行伸缩的控制,并设置透明度。
/* 旋转球体模型 */
.map {
position: relative;
height: 10.125rem;
/* 球体 */
.map1 {
width: 6.475rem;
height: 6.475rem;
position: absolute;
top: 50%;
left: 50%;
background: url(/images/map.png);
background-size: 100% 100%;
transform: translate(-50%, -50%);
opacity: 0.3;
}
}
2.旋转球体旋转模块实现
旋转球体模块的实现我们还是需要使用背景图结合CSS3的动画效果做
1.HTML
<div class="map">
<div class="map1"></div>
<div class="map2"></div>
</div>
2.CSS
注意: 这里涉及到了一个CSS3 旋转动画的写法。
模块本质上还是使用定位效果将球体模块定位过去,使用背景展现出来。结合C3的旋转动画进行旋转 注意!C3的旋转指令里需要一直设置他的translate位置。不然他会飘到别的地方去。 还有就是transform属性只能有一个 所以属性要堆积写,不能写出两个tranfrom来。
/* 旋转球体模型 */
.map {
position: relative;
height: 10.125rem;
/* 球体 */
.map1 {
width: 6.475rem;
height: 6.475rem;
position: absolute;
top: 50%;
left: 50%;
background: url(/images/map.png);
background-size: 100% 100%;
transform: translate(-50%, -50%);
opacity: 0.3;
}
/* 旋转球体模块制作 */
.map2{
position: absolute;
top: 50% !important;
left: 50% !important;
transform: translate(-50%, -50%);
width: 8.0375rem;
height: 8.0375rem;
background: url(/images/lbx.png);
animation: rotate1 15s linear infinite;
background-size: 100% 100%;
}
@keyframes rotate1 {
from {
transform: translate(-50%, -50%) rotate(0deg);
}
to {
transform: translate(-50%, -50%) rotate(360deg);
}
}
}
3.旋转箭头模块实现
箭头的实现原理上跟旋转小求是一样的,背景图结合CSS3。只不过是旋转的方向倒置过来就行了。
1.HTML
<div class="map">
<div class="map1"></div>
<div class="map2"></div>
<div class="map3"></div>
</div>
2.CSS
/* 旋转箭头实现 */
.map3{
position: absolute;
top: 50% !important;
left: 50% !important;
transform: translate(-50%, -50%);
width: 7.075rem;
height: 7.075rem;
background: url(/images/jt.png);
animation: rotate2 10s linear infinite;
background-size: 100% 100%;
}
@keyframes rotate2 {
from {
transform: translate(-50%, -50%) rotate(0deg);
}
to {
transform: translate(-50%, -50%) rotate(-360deg);
}
}
为了展示效果没有设置map2 和 map3的透明度 可以设置为0.6 就跟原型一样了。