angular 实现 echarts 拖动区域进行放大 方法
- 实现逻辑:
1.通过鼠标摁下事件 和弹出事件 获取x轴的index 之后去x轴的list中去获取两个坐标点
2.之后将这两个数据作为参数 传到后台更新数据
3.记录下来这两个坐标点 放到list中 在前台提供向前一步和向后一步的按钮 实现回退功能
4.需要注意的是:需要在myChart初始话之后再添加事件还有就是避免重复添加事件 只在mychart第一次初始化的时候才给他添加鼠标点击事件 否则会导致加载很多个事件
- angular代码:
myChart.setOption(option,true);
if(flag==){
flag++;
console.log("点击事件加载") var x_start;
myChart.getZr().on('mousedown',function(params){
const pointInPixel= [params.offsetX, params.offsetY];
if (myChart.containPixel('grid',pointInPixel)) {
var pointInGrid=myChart.convertFromPixel({seriesIndex:},pointInPixel);
var xIndex=pointInGrid[];
x_start= Math.round(option.series[].data[xIndex*][]);
console.log("进入鼠标点击",xIndex);
console.log("进入鼠标点击",option.series[].data[xIndex*][]); }
});
myChart.getZr().on('mouseup',function(params){
const pointInPixel= [params.offsetX, params.offsetY];
if (myChart.containPixel('grid',pointInPixel)) {
var pointInGrid=myChart.convertFromPixel({seriesIndex:},pointInPixel);
var xIndex=pointInGrid[];
if(parseInt(x_start)<parseInt( Math.round(option.series[].data[xIndex*][]))){
$scope.depth_start = x_start;
$scope.depth_end = Math.round(option.series[].data[xIndex*][]);
}else{
$scope.depth_end= x_start;
$scope.depth_start = Math.round(option.series[].data[xIndex*][]);
}
var a={
'depth_start': $scope.depth_start,
'depth_end':$scope.depth_end
};
$scope.depth_data.push(a)
$scope.index+=;
if($scope.depth_data.length==){
$scope.depth_data_Judge=;
}else{
$scope.depth_data_Judge=;
}
$scope.createChart(); }
});
}
});
angular 实现 echarts 拖动区域进行放大 方法的更多相关文章
- js实现移动端图片预览:手势缩放, 手势拖动,双击放大...
.katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...
- 图片放大方法、、菜单栏的位置随滚轮移动固定方法、、<a></a>去外层虚线方法:a:focus { outline:none; -moz-outline:none;};
图片放大方法一: <style type="text/css">.xt{ width:230px; height:230px;}.tp{ width:230px; he ...
- Angular.js中处理页面闪烁的方法详解
Angular.js中处理页面闪烁的方法详解 前言 大家在使用{{}}绑定数据的时候,页面加载会出现满屏尽是{{xxx}}的情况.数据还没响应,但页面已经渲染了.这是因为浏览器和angularjs渲染 ...
- echarts数据区域缩放(鼠标滚轮、滚动条、拉选框)
当一个echarts图表上的数据很多时,想要查看部分区域的数据状态,可以通过数据区域缩放来实现,现总结三个方法: 鼠标滚轮缩放: var arr = []; for(var i = 0;i<15 ...
- angular引用echarts插件
方法一 1. 命令行下载 npm install echarts --savenpm install ngx-echarts --save 2. angular.json 配置echarts路径. 2 ...
- Echarts 多曲线“断点”问题解决方法
Echarts 用来做可视化曲线是非常优秀的一个库.建议使用 Echarts 作为项目的可视化图标库时,仔细研究 官方实例,根据需求来选择类似的示例,下载实例模板来开发,节省时间,减少出错,提高效率. ...
- angular结合echarts创建图表
原理: 利用angularjs中的指令(directive)将echarts封装. 步骤: 1.封装函数: app.directive('line', function() { return { re ...
- Angular页面传参的四种方法
1. 基于ui-router的页面跳转传参 (1)在Angular的app.js中用ui-route定义路由,比如有两个页面, 一个页面(producers.html)放置了多个producers,点 ...
- 【转】C# 控件的自定义拖动、改变大小方法
在用VS的窗体设计器时,我们可以发现控件都是可以拖动的,并且还可以调整大小.怎么在自己的程序中可以使用上述功能呢? 下面的方法值得借鉴! using System; using System.Wind ...
随机推荐
- C++并发编程学习笔记
// // main.cpp // test1 // // Created by sofard on 2018/12/27. // Copyright © 2018年 dapshen. All ...
- laravel passport加密jwt格式的access_token中的sub(user_id)字段
在很多需求我们不希望别人知道用户在我们表中的 user_id :但是又想用数据库的自增 id 功能:一般时候在取出用户后加密 user_id 加密即可:但是总有那么几个不经意间就可能把我们的 user ...
- Mac gitk安装与优化
一.mac系统安装gitk gitk是git的一个bin工具,如果git不包含gitk只能说明当前使用的git版本过老. 因此我们只需要安装最新的git就可以了.安装git方法如下: 首先安装brew ...
- 理解 ASP.NET Web API 中的 HttpParameterBinding
背景 问题的起因是这样的.群里面一个哥们儿发现在使用 ASP.NET WebAPI 时,不能在同一个方法签名中使用多次 FromBodyAttribute 这个 Attribute .正好我也在用 W ...
- c#Socket Tcp服务端编程
创建一个socket服务类,绑定监听端口, 然后创建一个线程listen连接的客户端, 把监听到的客户端加入dictionary里面,以便于管理, 同时创建receive线程,循环接收数据加入list ...
- C# 微信网页授权多域名解决
在做微信开发的时候,会遇到这样的场景:一个公众号,会有多个业务:官网.论坛.商城等等 微信网页授权域名 目前最多可以填写两个!!!,那么问题来了?这应该怎么办? 答案就是: 做一个中转服务! 域名1: ...
- div轮流滚动显示
window.onload = function(){ var _box1 = document.getElementById("box1"); var _box2 = docum ...
- MVC开发T4代码生成之二----vs模板扩展
在上一篇MVC开发T4代码生成之一----文本模板基础中介绍了与T4模板相关的基础知识,并对MVC内使用T4模板添加视图做了介绍.知道了T4模板的使用后自然就想着怎么对vs自带的T4模板进行扩展,添加 ...
- SQL CTE递归
WITH cte_name AS ( --Anchor member is defined ' UNION ALL --Recursive member is defined referencing ...
- MySQL函数转储存(当前月数据同步)
BEGIN declare a1 int default 0;#第一次循环的循环变量 declare a2 int default 0; declare b1 int default 0; decla ...