网页柱形图表

欢迎收看《好看的博客没人赞》系列

这篇博客将为各位看官做一个柱形图表的样式。

首先展示一波效果图提高一下大家的兴趣:

这里没有使用其他jar包,而是采用css画出来的,也就是说,这里是采用定位的方式制作图表。

咋们分析一波柱形图是怎样组成的:如上图,左侧为ul竖版样式,下方为ul横版样式,图中的虚线格子是由6个div拼凑而成的,由上往下前5个div属性是:边框虚线,大小一致,下边框隐藏;最下面的div属性:只显示上边框,长铺满,边框虚线;再到图中的柱子,也是由5个div定位而成,长一致,高为0px,具体高度是通过js实现高度变化,柱子上方还有具体数值,这是通过js的innerHTML方法添加上去的。

具体代码如下:

HTML:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<link rel="stylesheet" type="text/css" href="css/rdm.css" />
	</head>
	<body>
		<div id="all" class="all">
			<h1>博客测试柱形图</h1>
			<div class="h2">
				<ul>
					<li>...</li>
					<li>20</li>
					<li>15</li>
					<li>10</li>
					<li>5</li>
					<li>0(元)</li>
				</ul>
			</div>
			<div class="h"></div>
			<div class="h"></div>
			<div class="h"></div>
			<div class="h"></div>
			<div class="h"></div>
			<div class="h1"></div>
			<div class="h3">
				<ul>
					<li>(班级)1</li>
					<li>2</li>
					<li>3</li>
					<li>4</li>
					<li>5</li>
				</ul>
			</div>
			<div id="w1" class="w1">
				<span id="w11" class="ws"></span>
			</div>
			<div id="w2" class="w2">
				<span id="w12" class="ws"></span>
			</div>
			<div id="w3" class="w3">
				<span id="w13" class="ws"></span>
			</div>
			<div id="w4" class="w4">
				<span id="w14" class="ws"></span>
			</div>
			<div id="w5" class="w5">
				<span id="w15" class="ws"></span>
			</div>
		</div>
		<script src="js/rdm.js"></script>
	</body>
</html>

CSS:

*{
	padding: 0px;
	margin: 0px;
	list-style-type: none;
}
body{
	background-color: pink;
}
.all{
	width: 500px;
	height: 400px;
	margin: auto;
	background-color: white;
}
.back{
	width: 400px;
}
h1{
	text-align: center;
	margin-top: 10vh;
}
.h{
	width: 90%;
	height: 40px;
	border-left: 1px dashed black;
	border-top:  0.5px dashed gray;
	position: relative;
	top: 29%;
	left: 10%;
}
.h1{
	width: 100%;
	border-top:  0.5px dashed gray;
	position: relative;
	top: 29%;
}
.h2{
	position: absolute;
	top: 210px;
	left: 545px;
	line-height: 5.5vh;
}
.h3 ul{
	display: flex;
	position: absolute;
	top: 420px;
	left: 580px;
}
.h3 li{
	padding: 30px;
}
.w1{
	background-color: orange;
	width: 50px;
	position: absolute;
	left:630px;
	top: 437px;
	transform-origin: top;
	transform: rotateX(180deg);
}
.w2{
	background-color: gold;
	width: 50px;
	position: absolute;
	left:700px;
	top: 437px;
	transform-origin: top;
	transform: rotateX(180deg);
}
.w3{
	background-color: yellow;
	width: 50px;
	position: absolute;
	left:770px;
	top: 437px;
	transform-origin: top;
	transform: rotateX(180deg);
}
.w4{
	background-color: red;
	width: 50px;
	position: absolute;
	left:840px;
	top: 437px;
	transform-origin: top;
	transform: rotateX(180deg);
}
.w5{
	background-color: orange;
	width: 50px;
	position: absolute;
	left:910px;
	top: 437px;
	transform-origin: top;
	transform: rotateX(180deg);
}
.ws{
	position: absolute;
	transform: rotateY(100deg);
	left: 15px;
}

JS:

var num1 = 21;
var num2 = 10;
var num3 = 15;
var num4 = 8;
var num5 = 5;
document.getElementById("w1").style.height=8*num1+0.5*num1/5+"px";
document.getElementById("w2").style.height=8*num2+0.5*num2/5+"px";
document.getElementById("w3").style.height=8*num3+0.5*num3/5+"px";
document.getElementById("w4").style.height=8*num4+0.5*num4/5+"px";
document.getElementById("w5").style.height=8*num5+0.5*num5/5+"px";
document.getElementById("w11").innerHTML=num1;
document.getElementById("w11").style.transform="rotateX(180deg)";
document.getElementById("w11").style.top=8*num1+"px";
document.getElementById("w12").innerHTML=num2;
document.getElementById("w12").style.transform="rotateX(180deg)";
document.getElementById("w12").style.top=8*num2+"px";
document.getElementById("w13").innerHTML=num3;
document.getElementById("w13").style.transform="rotateX(180deg)";
document.getElementById("w13").style.top=8*num3+"px";
document.getElementById("w14").innerHTML=num4;
document.getElementById("w14").style.transform="rotateX(180deg)";
document.getElementById("w14").style.top=8*num4+"px";
document.getElementById("w15").innerHTML=num5;
document.getElementById("w15").style.transform="rotateX(180deg)";
document.getElementById("w15").style.top=8*num5+"px";

图表中的数据可自行修改,这里就是提供一个思路、一个样板。

本博文到此为止咯,制作不易,各位看官点个小赞呗。

猜你喜欢

转载自blog.csdn.net/qq_46223960/article/details/109159555
今日推荐