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


Posted in Javascript onSeptember 25, 2019

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=[];  //?r?数组(实际用来盛放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构建弹出层折线图的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用js实现计算代码行数的简单方法附代码
Aug 13 Javascript
javascript 传统事件模型构造的事件监听器实现代码
May 31 Javascript
判断滚动条到底部的JS代码
Nov 04 Javascript
js中通过父级进行查找定位元素
Jun 15 Javascript
AngularJS实现根据变量改变动态加载模板的方法
Nov 04 Javascript
JavaScript中数组常见操作技巧
Sep 01 Javascript
微信小程序视图template模板引用的实例详解
Sep 20 Javascript
vuejs使用递归组件实现树形目录的方法
Sep 30 Javascript
详解babel升级到7.X采坑总结
May 12 Javascript
vue使用codemirror的两种用法
Aug 27 Javascript
如何利用JavaScript编写更好的条件语句详解
Aug 10 Javascript
jQuery实现鼠标拖动图片功能
Mar 04 jQuery
axios实现简单文件上传功能
Sep 25 #Javascript
layer弹出层取消遮罩的方法
Sep 25 #Javascript
QML实现圆环颜色选择器
Sep 25 #Javascript
解决layer 关闭当前弹窗 关闭遮罩层 input值获取不到的问题
Sep 25 #Javascript
微信小程序实现一张或多张图片上传(云开发)
Sep 25 #Javascript
Layer组件多个iframe弹出层打开与关闭及参数传递的方法
Sep 25 #Javascript
layer 关闭指定弹出层的例子
Sep 25 #Javascript
You might like
php5编程中的异常处理详细方法介绍
2008/07/29 PHP
php $_SERVER windows系统与linux系统下的区别说明
2014/02/14 PHP
Thinkphp关闭缓存的方法
2015/06/26 PHP
php+html5+ajax实现上传图片的方法
2016/05/14 PHP
php7连接MySQL实现简易查询程序的方法
2020/10/13 PHP
Jjcarousellite 实现图片列表滚动的简单实例
2013/11/29 Javascript
jquery实现点击文字可编辑并修改保存至数据库
2014/04/15 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
JavaScript中的console.group()函数详细介绍
2014/12/29 Javascript
js 获取范围内的随机数实例代码
2016/08/02 Javascript
JS基于递归实现倒计时效果的方法
2016/11/26 Javascript
Vue.js项目部署到服务器的详细步骤
2017/07/17 Javascript
vue、react等单页面项目部署到服务器的方法及vue和react的区别
2018/09/29 Javascript
Vue路由history模式解决404问题的几种方法
2018/09/29 Javascript
vue 全局环境切换问题
2019/10/27 Javascript
vue 插槽简介及使用示例
2020/11/19 Vue.js
Vue组件生命周期运行原理解析
2020/11/25 Vue.js
vue 使用rules对表单字段进行校验的步骤
2020/12/25 Vue.js
Python函数的周期性执行实现方法
2016/08/13 Python
python基础练习之几个简单的游戏
2017/11/10 Python
python xlsxwriter库生成图表的应用示例
2018/03/16 Python
python使用tornado实现简单爬虫
2018/07/28 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
2018/12/18 Python
python tornado使用流生成图片的例子
2019/11/18 Python
微信小程序之html5 canvas绘图并保存到系统相册
2019/06/20 HTML / CSS
新英格兰最大的特色礼品连锁店:The Paper Store
2018/07/23 全球购物
金融专业应届生求职信
2013/11/02 职场文书
父亲追悼会答谢词
2014/01/17 职场文书
优秀教师事迹简介
2014/02/02 职场文书
会计岗位描述
2014/02/22 职场文书
春节联欢晚会主持词范文
2014/03/24 职场文书
好人好事演讲稿
2014/09/01 职场文书
《观潮》教学反思
2016/02/17 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书
如何打开Win11系统注册表编辑器?Win11注册表编辑器打开修复方法
2022/04/05 数码科技
JavaScript获取URL参数的方法分享
2022/04/07 Javascript