Echarts实现单条折线可拖拽效果


Posted in Javascript onDecember 19, 2019

本文实例为大家分享了Echarts单条折线可拖拽的具体代码,供大家参考,具体内容如下

1、步骤:

    1)、封装Echarts折线图方法coinConsumeChart(),提取出公共的部分;
    2)、AJax获取后台数据传参至Echarts公共方法;
    3)、模拟后台获取的json数据;
    4)、给dayComment()方法值开始执行。

2、效果:

Echarts实现单条折线可拖拽效果

3、代码:

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <title>ECharts单条折线可拖拽</title>
 <script src="http://code.jquery.com/jquery-1.4.1.min.js"></script>
 <!-- 引入 echarts.js -->
 <script src="http://echarts.baidu.com/examples/vendors/echarts/echarts.min.js?_v_=1526486305040"></script>
</head>
<body>
 <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
 <div id='consume_line' style="width:600px;height:400px;margin-left:20px;"> </div>
</body>
</html>
<script type="text/javascript">
 /**
 * @todo 加载echarts方法
 * @url:异步请求路径
 * @chartId:请求的echart的id
 * @titleText:标题名
 * @detailHref:跳转路径
 * @name:图例名
 */
 function dayComment(url,chartId,titleText,detailHref, name) {
 /*$.ajax({//Ajax请求你要展现的数据
 url :url,
 type : 'post',
 cache : false,
 dataType : 'json',
 async:false, //改为同步
 data : { }, //查看方式
 success : function(data) {
 detailHref = 'http://www.baidu.com';
 coinConsumeChart( chartId, titleText, detailHref, name, data.date, data.pv, data.fromTime, data.toTime);
 },
 error : function() {
 alert('服务器异常!')
 }
 });*/
 //假设已经获取到json数据
 var data = getStaticJsonData();
 coinConsumeChart( chartId, titleText, detailHref, name, data.date, data.pv, data.fromTime, data.toTime);
 }
 
 /**
 * @todo 可拖拽的折线图
 * @param chartId 插件的div的ID
 * @param titleText 标题名
 * @param sublink 副标题超链接的路径
 * @param name  图例名
 * @param xAxisData X轴数据
 * @param seriesData Y轴数据
 * @param fromTime 默认开始节点
 * @param toTime 默认结束节点
 * */
 function coinConsumeChart( chartId , titleText, detailUrl, name, xAxisData, seriesData , fromTime, toTime){
 // 指定图表的配置项和数据
 var myChart = echarts.init(document.getElementById( chartId ));
 var option = {
 title : {
  text: titleText,
  x:'center', //主标题居中
  subtext:'详情',
  sublink: detailUrl,//副标题超链接
  subtarget:'blank',//副标题超链接打开方式
  subtextStyle:{
  color:'#2299EE',
  fontSize: 15,
  }
  },
  
 color: ['#3398DB'],
 tooltip : {
   trigger: 'axis'
  },
  legend: {
   data:[name],
   top:30,
   left:55, //图示显示在左边
  },
  toolbox: {
   show : true,
   feature : {
    //mark : {show: true},
    //dataZoom : {show: true},
    //magicType : {show: true, type: ['line', 'bar', 'stack', 'tiled']},
   magicType : {show: true, type: ['line', 'bar']},
   dataView : {show: true},
    //restore : {show: true},
    //saveAsImage : {show: true}
   }
  },
  calculable : true,
  dataZoom : {
   show : true,
   realtime : true,
   // start : 20,
   // end : 80 //百分比
   startValue: fromTime, //拖拽条开始时间
   endValue: toTime //拖拽条结束时间
  },
  xAxis : [
   {
    type : 'category',
    boundaryGap : false,
    data : xAxisData
   }
  ],
  yAxis : [
   {
    type : 'value'
   }
  ],
  series : [
   {
    name: name,
    type:'line',
    data: seriesData,
   },
  ]
 };
      
 
 // 使用刚指定的配置项和数据显示图表。
 myChart.setOption( option );
 }
 
 //模拟AJax请求获取返回的json数据
 function getStaticJsonData(){
 var data = '{"date":["20180726","20180727","20180728","20180729","20180730","20180731","20180801","20180802","20180803","20180804","20180805","20180806","20180807","20180808","20180809","20180810","20180811","20180812","20180813","20180814"],"pv":[100,10,20,30,60,800,700,300,1000,100,100,360,900,180,120,150,600,140,1200,800],"fromTime":"20180808","toTime":"20180814"}';
 data = eval('(' + data + ')');
 return data;
 }
 
 dayComment( 'Ajax请求路径', 'consume_line', '用户消费','http://www.baidu.com', 'A消费'); //执行
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery入门——移除绑定事件unbind方法概述及应用
Feb 05 Javascript
extjs3 combobox取value和text案例详解
Feb 06 Javascript
Javscript调用iframe框架页面中函数的方法
Nov 01 Javascript
JQuery查找DOM节点的方法
Jun 11 Javascript
前端主流框架vue学习笔记第二篇
Jul 26 Javascript
JavaScript实现HTML5游戏断线自动重连的方法
Sep 18 Javascript
浅谈Node异步编程的机制
Oct 18 Javascript
基于vue-cli配置lib-flexible + rem实现移动端自适应
Dec 26 Javascript
element ui里dialog关闭后清除验证条件方法
Feb 26 Javascript
clipboard在vue中的使用的方法示例
Oct 19 Javascript
Layui表格行工具事件与数据回填方法
Sep 13 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
Jun 02 Javascript
Webpack设置环境变量的一些误区详解
Dec 19 #Javascript
Echarts实现多条折线可拖拽效果
Dec 19 #Javascript
js判断一个对象是数组(函数)的方法实例
Dec 19 #Javascript
利用JS如何获取form表单数据
Dec 19 #Javascript
在Vue项目中使用Typescript的实现
Dec 19 #Javascript
JS数据类型STRING使用实例解析
Dec 18 #Javascript
JS精确判断数据类型代码实例
Dec 18 #Javascript
You might like
实现了一个PHP5的getter/setter基类的代码
2007/02/25 PHP
SESSION存放在数据库用法实例
2015/08/08 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
Laravel框架路由管理简单示例
2019/05/07 PHP
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
2009/11/27 Javascript
使用隐藏的new来创建对象
2011/03/29 Javascript
JavaScript中switch判断容易犯错的一个细节
2014/08/27 Javascript
javascript禁止超链接跳转的方法
2016/02/02 Javascript
JavaScript的React框架中的JSX语法学习入门教程
2016/03/05 Javascript
Vue.js基础学习之class与样式绑定
2017/03/20 Javascript
JS实现针对给定时间的倒计时功能示例
2017/04/11 Javascript
vue如何获取点击事件源的方法
2017/08/10 Javascript
基于AngularJS的简单使用详解
2017/09/10 Javascript
ES6中Class类的静态方法实例小结
2017/10/28 Javascript
React.js绑定this的5种方法(小结)
2018/06/05 Javascript
微信小程序仿美团城市选择
2018/06/06 Javascript
vue中倒计时组件的实例代码
2018/07/06 Javascript
Puppet的一些技巧
2018/09/17 Javascript
JavaScript中的回调函数实例讲解
2019/01/27 Javascript
新年快乐! javascript实现超级炫酷的3D烟花特效
2019/01/30 Javascript
layui表格数据复选框回显设置方法
2019/09/13 Javascript
[01:29]2017 DOTA2国际邀请赛官方英雄手办展示
2017/03/18 DOTA
python在每个字符后添加空格的实例
2018/05/07 Python
详解Python下ftp上传文件linux服务器
2018/06/21 Python
Python wxPython库Core组件BoxSizer用法示例
2018/09/03 Python
Python jieba结巴分词原理及用法解析
2020/11/05 Python
美国儿童运动鞋和服装零售商:Kids Foot Locker
2017/08/05 全球购物
Charles&Keith美国官方网站:新加坡快时尚鞋类和配饰零售商
2019/11/27 全球购物
给定一个时间点,希望得到其他时间点
2013/11/07 面试题
网络工程师的自我评价
2013/10/02 职场文书
综合实践活动方案
2014/02/14 职场文书
国培计划培训感言
2014/03/11 职场文书
小学优秀教师先进事迹材料
2014/12/16 职场文书
销售经理岗位职责范本
2015/04/02 职场文书
夫妻吵架保证书
2015/05/08 职场文书
SpringBoot整合minio快速入门教程(代码示例)
2022/04/03 Java/Android