废话不多说直接上根据屏幕视口大小自动缩放的实现方法
通过js获取窗口宽高进行缩放建议配合vh,vw食用
- 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})`
-
- }
-
然后里面的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行