JavaScript

超轻量级php框架startmvc

Layer+Echarts构建弹出层折线图的方法

更新时间:2020-09-15 08:42:01 作者:startmvc
layer是一款口碑极佳的web弹层组件,她具备全方位的解决方案,致力于服务各个水平段的开发

layer是一款口碑极佳的web弹层组件,她具备全方位的解决方案,致力于服务各个水平段的开发人员,您的页面会轻松地拥有丰富而友好的操作体验。

在中国可视化生态系统中,ECharts 通过提供方便丰富的可视化图表,极大缩短了用户与数据的距离。个人认为是最好用的可用来生成图表的插件。

现在使用Layer和Echarts构建弹出层折线图。

下载好所需要用到的工具包,Echarts下载为echarts.min.js,Layer在layer官网下载之后将layer文件夹放到项目之中。

在HTML文件中引入


 <script src="js/jquery-1.11.1.min.js"></script>
 <!-- 你必须先引入jQuery1.8或以上版本 -->
 <script src="js/layer/layer.js"></script>
 <script src="js/bootstrap.min.js"></script>
 <!-- 引入 ECharts 文件 -->
 <script src="js/echarts.min.js"></script>

页面内容


<body>
 <button id="test2">Layer+Echarts构建弹出层折线图</button>
 <div id="speedChart" style="display: none;">
 <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
 <div id="speedChartMain" style="width: 600px; height: 400px;"></div>
 </div>
 <div id="dfd">
 <span>Layer+Echarts构建弹出层折线图</span>
 <p>Layer+Echarts构建弹出层折线图</p>
 </div>

</body>

js脚本


<script type="text/javascript">
 // 基于准备好的dom,初始化echarts实例
 var myChart = echarts.init(document.getElementById('speedChartMain'));
 option = {
 tooltip: {
 trigger: 'axis'
 },
 legend: {
 data:['邮件营销','联盟广告','视频广告','直接访问','搜索引擎']
 },
 grid: {
 left: '3%',
 right: '4%',
 bottom: '3%',
 containLabel: true
 },
 toolbox: {
 feature: {
 saveAsImage: {}
 }
 },
 xAxis: {
 type: 'category',
 boundaryGap: false,
 data: ['周一','周二','周三','周四','周五','周六','周日']
 },
 yAxis: {

 type: 'value'
 },
 series: [
 {
 name:'邮件营销',
 type:'line',
 stack: '总量',
 data:[120, 132, 101, 134, 90, 230, 210]
 },
 {
 name:'联盟广告',
 type:'line',
 stack: '总量',
 data:[220, 182, 191, 234, 290, 330, 310]
 },
 {
 name:'视频广告',
 type:'line',
 stack: '总量',
 data:[150, 232, 201, 154, 190, 330, 410]
 },
 {
 name:'直接访问',
 type:'line',
 stack: '总量',
 data:[320, 332, 301, 334, 390, 330, 320]
 },
 {
 name:'搜索引擎',
 type:'line',
 stack: '总量',
 data:[820, 932, 901, 934, 1290, 1330, 1320]
 }
 ]
};
 // 使用刚指定的配置项和数据显示图表。
 myChart.setOption(option);
 //弹出一个页面层
 $('#test2').on('click', function() {
 layer.open({
 title:'hello world',
 type: 1,
 shade: false,
 area: ['620px', '460px'],
 shadeClose: false, //点击遮罩关闭
 content: $("#speedChart")
 });
 });
 </script>

预览

当然以上是静态加载,我们平常使用最多的是异步加载,修改一下代码即可:


<div id="speedChart" style="display: none;">
 <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
 <div id="speedChartMain" style="width: 600px; height: 400px;"></div>
</div>

$(document).ready(function() {
 option = {
 tooltip: {
 trigger: 'axis'
 },
 legend: {
 data:[]
 },
 grid: {
 left: '3%',
 right: '4%',
 bottom: '3%',
 containLabel: true
 },
 toolbox: {
 feature: {
 saveAsImage: {}
 }
 },
 xAxis: {
 type: 'category',
 boundaryGap: false,
 data: []
 },
 yAxis: {
 type: 'value'
 },
 series: []
 };

 //按钮提交表单数据
 $("#subSpeed").click(function(){
 // 基于准备好的dom,初始化echarts实例
 var myChart = echarts.init(document.getElementById('speedChartMain')); 
 // 使用刚指定的配置项和数据显示图表。 
 myChart.setOption(option);
 var url=$("#speedFrom").attr("action");
 var times=[]; //時間数组(实际用来盛放X轴坐标值)
 var speeds=[]; //速度数组(实际用来盛放Y坐标值)
 $.post(url,$("#speedFrom").serialize(),
 function(data, status){
 if(data!=null){
 for (var i = 0; i < data.length; i++) {
 times.push(data[i].timeStamp);
 speeds.push(data[i].speed);
 }
 //之前option中legend和 XAxis的data,series 为空,所以现在将数据填充进去
 myChart.setOption({ //加载数据图表
 legend: {
 data:[$("#roads").val()]
 },
 xAxis: {
 data: times
 },
 series: [{
 // 根据名字对应到相应的系列
 name: $("#roads").val(),
 type:'line',
 data: speeds
 }]
 });
 }

 layer.open({
 title:'折线图',
 type: 1,
 shade: false,
 area: ['620px', '460px'],
 shadeClose: true, //点击遮罩关闭
 content: $("#speedChart")
 });
 },"json");
 });
 });

以上这篇Layer+Echarts构建弹出层折线图的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

Layer Echarts 弹出层 折线图