废话不多说直接上根据屏幕视口大小自动缩放的实现方法
方法一
通过js获取窗口宽高进行缩放建议配合vh,vw食用
<script>
console.log(window.screen)
let screenWidth = window.screen.width
let screenHeight = window.screen.height
let box = document.querySelector('.box')
box.style.width = screenWidth + 'px'
box.style.height = screenHeight + 'px'
// window.innerWidth
let pageWidth = window.innerWidth
let scale = pageWidth / screenWidth
document.body.style.transform = `scale(${scale})`
window.onresize = function () {
let pageWidth = window.innerWidth
let scale = pageWidth / screenWidth
document.body.style.transform = `scale(${scale})`
}
</script>
然后里面的echarts图表通过监听窗口变化实现自适应
pieChart1为你初始化的图表
window.onresize = function () {
pieChart1.resize();
};
效果图
模板代码
css
body {
margin: 0;
}
.box {
background: url(./img/bg.png) center center / cover;
transform-origin: left top;
position: relative;
}
.header {
height: 80px;
}
.header h2 {
text-align: center;
color: #fff;
font-size: 30px;
font-weight: normal;
margin: 0;
line-height: 80px;
}
.main {
height: calc(100vh - 80px);
position: relative;
/* top: 80px; */
left: 0;
bottom: 0;
right: 0;
display: flex;
}
.lt {
position: absolute;
left: 0;
top: 0;
}
.rt {
position: absolute;
right: 0;
top: 0;
transform: rotateY(180deg);
}
.lb {
position: absolute;
bottom: 0;
left: 0;
transform: rotateX(180deg);
}
.rb {
position: absolute;
bottom: 0;
right: 0;
transform: rotateX(180deg) rotateY(180deg);
}
.left-container {
width: 22%;
position: relative;
border: 5px solid #fff;
margin: 20px;
}
.right-container {
width: 78%;
margin: 20px;
display: flex;
flex-direction: column;
margin-left: 0;
}
.right-bottom-container {
height: 35%;
margin-top: 20px;
border: 5px solid #fff;
}
.right-top-container {
height: 65%;
display: flex;
}
.right-top-left-container {
border: 5px solid #fff;
width: 65%;
margin-right: 20px;
}
.right-top-right-container {
width: 35%;
display: flex;
flex-direction: column;
}
.right-top-right-top-container {
border: 5px solid #fff;
height: 50%;
margin-bottom: 10px;
}
.right-top-right-bottom-container {
border: 5px solid #fff;
height: 50%;
margin-top: 10px;
}
.pie-1 {
width: 100%;
height: 30%;
}
.pie-2 {
width: 100%;
height: 100%;
}
html
<div class="box">
<div class="header">
<h2>机电设备电子档案</h2>
</div>
<div class="main">
<svg class="lt" width="150" height="150">
<polygon
fill="#4fd2dd"
points="6,66 6,18 12,12 18,12 24,6 27,6 30,9 36,9 39,6 84,6 81,9 75,9 73.2,7 40.8,7 37.8,10.2 24,10.2 12,21 12,24 9,27 9,51 7.8,54 7.8,63"
>
<animate
attributeName="fill"
values="#4fd2dd;#235fa7;#4fd2dd"
dur="0.5s"
begin="0s"
repeatCount="indefinite"
></animate>
</polygon>
<polygon
fill="#235fa7"
points="27.599999999999998,4.8 38.4,4.8 35.4,7.8 30.599999999999998,7.8"
>
<animate
attributeName="fill"
values="#235fa7;#4fd2dd;#235fa7"
dur="0.5s"
begin="0s"
repeatCount="indefinite"
></animate>
</polygon>
<polygon
fill="#4fd2dd"
points="9,54 9,63 7.199999999999999,66 7.199999999999999,75 7.8,78 7.8,110 8.4,110 8.4,66 9.6,66 9.6,54"
>
<animate
attributeName="fill"
values="#4fd2dd;#235fa7;transparent"
dur="1s"
begin="0s"
repeatCount="indefinite"
></animate>
</polygon>
</svg>
<svg class="rt" width="150" height="150">
<polygon
fill="#4fd2dd"
points="6,66 6,18 12,12 18,12 24,6 27,6 30,9 36,9 39,6 84,6 81,9 75,9 73.2,7 40.8,7 37.8,10.2 24,10.2 12,21 12,24 9,27 9,51 7.8,54 7.8,63"
>
<animate
attributeName="fill"
values="#4fd2dd;#235fa7;#4fd2dd"
dur="0.5s"
begin="0s"
repeatCount="indefinite"
></animate>
</polygon>
<polygon
fill="#235fa7"
points="27.599999999999998,4.8 38.4,4.8 35.4,7.8 30.599999999999998,7.8"
>
<animate
attributeName="fill"
values="#235fa7;#4fd2dd;#235fa7"
dur="0.5s"
begin="0s"
repeatCount="indefinite"
></animate>
</polygon>
<polygon
fill="#4fd2dd"
points="9,54 9,63 7.199999999999999,66 7.199999999999999,75 7.8,78 7.8,110 8.4,110 8.4,66 9.6,66 9.6,54"
>
<animate
attributeName="fill"
values="#4fd2dd;#235fa7;transparent"
dur="1s"
begin="0s"
repeatCount="indefinite"
></animate>
</polygon>
</svg>
<svg class="rb" width="150" height="150">
<polygon
fill="#4fd2dd"
points="6,66 6,18 12,12 18,12 24,6 27,6 30,9 36,9 39,6 84,6 81,9 75,9 73.2,7 40.8,7 37.8,10.2 24,10.2 12,21 12,24 9,27 9,51 7.8,54 7.8,63"
>
<animate
attributeName="fill"
values="#4fd2dd;#235fa7;#4fd2dd"
dur="0.5s"
begin="0s"
repeatCount="indefinite"
></animate>
</polygon>
<polygon
fill="#235fa7"
points="27.599999999999998,4.8 38.4,4.8 35.4,7.8 30.599999999999998,7.8"
>
<animate
attributeName="fill"
values="#235fa7;#4fd2dd;#235fa7"
dur="0.5s"
begin="0s"
repeatCount="indefinite"
></animate>
</polygon>
<polygon
fill="#4fd2dd"
points="9,54 9,63 7.199999999999999,66 7.199999999999999,75 7.8,78 7.8,110 8.4,110 8.4,66 9.6,66 9.6,54"
>
<animate
attributeName="fill"
values="#4fd2dd;#235fa7;transparent"
dur="1s"
begin="0s"
repeatCount="indefinite"
></animate>
</polygon>
</svg>
<svg class="lb" width="150" height="150">
<polygon
fill="#4fd2dd"
points="6,66 6,18 12,12 18,12 24,6 27,6 30,9 36,9 39,6 84,6 81,9 75,9 73.2,7 40.8,7 37.8,10.2 24,10.2 12,21 12,24 9,27 9,51 7.8,54 7.8,63"
>
<animate
attributeName="fill"
values="#4fd2dd;#235fa7;#4fd2dd"
dur="0.5s"
begin="0s"
repeatCount="indefinite"
></animate>
</polygon>
<polygon
fill="#235fa7"
points="27.599999999999998,4.8 38.4,4.8 35.4,7.8 30.599999999999998,7.8"
>
<animate
attributeName="fill"
values="#235fa7;#4fd2dd;#235fa7"
dur="0.5s"
begin="0s"
repeatCount="indefinite"
></animate>
</polygon>
<polygon
fill="#4fd2dd"
points="9,54 9,63 7.199999999999999,66 7.199999999999999,75 7.8,78 7.8,110 8.4,110 8.4,66 9.6,66 9.6,54"
>
<animate
attributeName="fill"
values="#4fd2dd;#235fa7;transparent"
dur="1s"
begin="0s"
repeatCount="indefinite"
></animate>
</polygon>
</svg>
<div class="left-container">
<div class="pie-1"></div>
</div>
<div class="right-container">
<div class="right-top-container">
<div class="right-top-left-container">
<div class="pie-2"></div>
</div>
<div class="right-top-right-container">
<div class="right-top-right-top-container"></div>
<div class="right-top-right-bottom-container"></div>
</div>
</div>
<div class="right-bottom-container"></div>
</div>
</div>
</div>
js
// 第一个饼图
let pieChart1 = echarts.init(document.querySelector(".pie-1"));
let pieChart1Option = {
color: ["#469f4b", "#00baff", "#3de7c9", "#ffffff", "#ffc530"],
tooltip: {
trigger: "item",
},
series: [
{
type: "pie",
label: {
color: "#fff",
formatter: "{d}%\n{b}",
},
tooltip: {
show: false,
},
emphasis: {
disabled: true,
},
radius: ["30%", "40%"],
data: [
{ value: 1048, name: "其他" },
{ value: 735, name: "收费系统" },
{ value: 580, name: "通信系统" },
{ value: 484, name: "监控系统" },
{ value: 300, name: "供配电系统" },
],
},
],
};
pieChart1.setOption(pieChart1Option);
window.onresize = function () {
pieChart1.resize();
};
bg图
相信到了这里剩下的图表数据啊排版啥的就不用我多说了吧,直接按部就班开发就好,有收获就点个关注吧
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
本文含有隐藏内容,请 开通VIP 后查看