当前位置:首页 > 日记 > 正文

快速移动鼠标引发的问题和解决方案(ECharts外部调用保存为操作和工作流布线MouseEnter和MouseLeave)

快速移动鼠标引发的问题和解决方案(ECharts外部调用保存为操作和工作流布线MouseEnter和MouseLeave)
记录两个项目发展中遇到的问题。一个是Echarts外部调用保存为图片的操作,另一个是工作流连接曲线OnMouseEnter和OnMouseLeave事件太快鼠标移动触发。
一、外部按钮调用Echarts图应保存为图片操作
最近,ECharts库已被用于绘制图表。根据需求,我们希望我们的图表设置保存为图片的操作,可以调用外部的图表,主要是为了与之前的项目的图片下载,操作界面保持一致。然后在网上找到了一些方法,看看也没有达到一个令人满意的。后来,突然想到Echart开放源代码,可以查看源代码,找到下载的方法,然后调用不能(或许,我看技术,不仅对的方法,所以方法如何直接调用源复制下来,改变,只需要通过ID容器图)
Echart图示例(有一个按钮,下载图片工具栏中)

将代码附加到记录中
idfunction downloadimpbychart / /转移图容器(chartid){
VaR MyChart = echarts.getinstancebydom(document.getelementbyid(chartid));
var url = mychart.getconnecteddataurl({
pixelratio:5 /图片分辨率导出,默认是1
背景颜色:# FFF,背景颜色/图
工具组件忽略excludecomponents:{ / /保存图形时,默认的工具栏被忽略
工具箱
},
类型:'png ' / /图片类型,支持PNG和JPEG
});
var $ = document.createelement(A);
变量类型= 'png;
a.download美元= mychart.getoption(。标题{ 0 }。文本)+类型+'。;
a.target美元= '_blank;
a.href美元=网址;
和火狐浏览器/ Chrome浏览器
如果(typeof MouseEvent = 'function){
VaR EVT =新的MouseEvent(听到咔哒声,{
视图:窗口,
泡泡:真的,
可撤销:假
});
a.dispatchevent美元(EVT);
}
伊江
{其他
var =
+ '
+ '
+;
var标签= window.open();
tab.document.write(HTML);
}
};
这样,我们就不能使用它的下载操作,我们可以在外部自定义按钮和超链接,直接调用上面的方法,并且可以通过外部调用来实现保存图像的功能。
二,OnMouseEnter、、OnMouseLeave太快触发事件来触发机制的一个错误的时间
上面的数字说明了
希望当鼠标移动的曲线,不仅可以突出显示曲线,但也增加了剪刀图标在鼠标的位置,和曲线可以删除当剪压,mouseener和MouseLeave方法直接应用于曲线之前,然后当鼠标移动多曲线的快速,会有很多问题。剪刀不会消失时,光标离开,和多曲线将突出显示。要添加一些逻辑判断和更换mouseover和mouseout的方法是没有用的。然后,突然你的鼠标移动的方法可以使用。判断鼠标是否在剪图的面积,如果曲线突出而不再,所有曲线都恢复到默认的风格,那么它是成功的。一直困扰着整个一天的问题终于得到了解决。(因为MouseMove需要连续监测和触发事件,当鼠标移动,所以最好是有一个状态标志指示要调用的突出曲线,在这种状态下,画出剪刀的TIMING的调用图上,当鼠标进入曲线,全局变量设置为真,和随后的鼠标移动操作是根据变量的确定。
记录一些关键代码
鼠标进入高亮显示并绘制剪刀图。

$(document),(MouseEnter
每次输入之后,都会恢复到原来的状态。
$()。每个(函数(){)
this.setattribute(不透明
});
美元。每个(relation.links,功能(L,链接){
无功in_node_id = link.input.nodeid;
无功out_node_id = link.output.nodeid;
$(+ out_node_id +链接。输出。pointname + in_node_id + link.input.pointname # ){ 0 }。setAttribute(不透明
$(+ out_node_id +链接。输出。pointname + in_node_id + link.input.pointname #)。Attr(班
});
编辑状态需要显示操作图标。
如果(args。状态= =编辑){
del_curve ref_curve =这;
del_curve has_del_curve =真;
如果($(#德尔曲线图标)。长> 0){
$(#德尔曲线图标)。Css({
位置:绝对
上图:e.pagey-obj.offset(十),
左:e.pagex-obj.offset left-10(),
颜色:# FF0000
})显示();
其他{ }
无功del_icon = $()。Css({
位置:绝对
上图:e.pagey-obj.offset(十),
左:e.pagex-obj.offset left-10(),
颜色:# FF0000
字体大小:20px
});
obj.parent append(del_icon)();
}
del_curve。X = $(#德尔曲线图标)。偏移(左);
del_curve轴= $(,#德尔曲线图标)。偏移(顶部);
}
然后高亮当前曲线
如果($(this)。Attr(开始)!美元=定义(这)。Attr(端)!=未定义的){
透明性
$()。每个(函数(){)
this.setattribute(不透明
});
美元。每个(relation.links,功能(L,链接){
无功in_node_id = link.input.nodeid;
无功out_node_id = link.output.nodeid;
$(+ out_node_id +链接。输出。pointname + in_node_id + link.input.pointname # ){ 0 }。setAttribute(不透明
});
obj.children(G)。情商(0)。儿童(G)。情商(0)。在($(this));
$(这)。Attr(班
无功in_node = $(# + $(this)。Attr(开始))。儿童(G)。情商(0)。儿童(圆)。情商(1);
in_node.attr(班
$(# + $(this)。Attr(开始)){ 0 }。setAttribute(不透明
无功out_node = $(# + $(this)。Attr(结束))。儿童(G)。情商(0)。儿童(圆)。情商(1);
out_node.attr(班
$(# + $(this)。Attr(结束)){ 0 }。setAttribute(不透明
}
});
移动鼠标决策触发操作

$(document),(MouseMove
无功del_icon_width = $(#德尔曲线图标)。Width();
无功del_icon_height = $(#德尔曲线图标)(的高度) / /确定当前光标位置,如果还原在图表区域内剪刀默认风格
如果(e.pagex(del_curve。X + del_icon_width)| | e.pagey(del_curve。轴+ del_icon_height)){
del_curve has_del_curve = false;
$()。每个(函数(){)
this.setattribute(不透明
});
美元。每个(relation.links,功能(L,链接){
无功in_node_id = link.input.nodeid;
无功out_node_id = link.output.nodeid;
$(+ out_node_id +链接。输出。pointname + in_node_id + link.input.pointname # ){ 0 }。setAttribute(不透明
$(+ out_node_id +链接。输出。pointname + in_node_id + link.input.pointname #)。Attr(班
});
(del_curve美元。ref_curve)。Attr(班
无功in_node = $(# + $(del_curve。ref_curve)。Attr(开始))。儿童(G)。情商(0)。儿童(圆)。情商(1);
in_node.attr(班
无功out_node = $(# + $(del_curve。ref_curve)。Attr(结束))。儿童(G)。情商(0)。儿童(圆)。情商(1);
out_node.attr(班
$(#德尔曲线图标)藏();
}
}
})
好吧,事实上,工作流的问题,如果只有一个明亮的MouseEnter和MouseLeave曲线,效果是足够的。然而,在这个例子中,你需要通过曲线上的剪刀图标,它会随着MouseEnter和MouseLeave原始曲线的冲突。因为删除曲线的触发元件剪刀图标。

相关文章

mysql单文件存储删除数据文件容量

mysql单文件存储删除数据文件容量

容量,删除,文件存储,数据文件,解决方案,一个MySQL错误:InnoDB ibdata1不会收缩后被删除的数据 问题描述 当InnoDB引擎使用一个单独的文件存储在数据库中的数据被删除,文件的大小不会改变,这意味着该文件会越来越大。即使它被删除,它也不会允许…

flexChrome浏览器调试空白解决方案

flexChrome浏览器调试空白解决方案

浏览器,解决方案,调试,空白,电脑软件,flex 4在Chrome调试中,空白,因为谷歌有默认的Flash播放器,只要默认播放器左禁用,新安装的插件,OK,只要在浏览器地址栏,键入:Chrome:Flash播放器, 会看到两个文件,点击查看详细信息,Chrome关闭后就OK了。…

运用技巧在word中插入表高的操作方

运用技巧在word中插入表高的操作方

操作方法,技巧,电脑软件,word,在Word中插入一个表相信每个人都会,但要设置插入表单的高度,我认为有时候不仔细观察就看不见。今天,小编辑器教你如何用word插入表的高度。 在Word中插入表高度的过程如下: 第一步,打开Word工作表-插入选项打开。…

运用技巧在word中增加拼音文字的操

运用技巧在word中增加拼音文字的操

操作技巧,拼音文字,技巧,电脑软件,word,总之,找到了一种在文本中增加拼音的方法。如何在文本中添加拼音,如何操作拼音。今天,小编辑教你如何在单词中添加拼音。 在单词中添加拼音的步骤如下: 将拼音添加到文本中,例如,将拼音添加到百度的百度体…

root帐户提示MySQL错误1045(28000):在

root帐户提示MySQL错误1045(28000):在

错误,提示,帐户,加载,拒绝访问,新的MySQL后,第一个执行的MySQL中,P会发现root密码不为空。若要重置root密码,请参阅以下步骤。 编辑MySQL的配置文件my.ini(如果my_default.ini更名为我的INI)和添加mysqld }的{进入下 跳过授权表 在重新启动MySQ…

excel中产品比例功能计算的操作技

excel中产品比例功能计算的操作技

操作技巧,产品,计算,函数,比例,excel经常用来做表格,用来做一些数据计算和统计。你知道如何使用excel函数计算产品的百分比吗今天,萧边教你如何计算在Excel产品比例。 excel中计算产品比例的操作方法 以下表为例,计算A2在所有通过数中的比例…

oracle自定义拆分功能实例详细解决

oracle自定义拆分功能实例详细解决

自定义,解决方案,拆分,实例,功能,oracle自定义拆分功能 Oracle不提供拆分功能,但你可以建立一个函数来实现这个功能。例如,ABC DEFG hijkl nmopqr stuvw XYZ,分离器是一个空间,但空间的数量是不固定的。 源代码: 创建或替换型ty_str_split是表…

MySQL数据库1067错误数的解决方案

MySQL数据库1067错误数的解决方案

错误,解决方案,数据库,电脑软件,MySQL,MySQL 5.6安装在Windows 7 64位专业系统下,但有一天发生错误,错误号:1067;如何解决这个问题 下面是解决步骤: 1,登陆系统管理员; 2,停止MySQL服务; 3,输入CMD命令行模式,然后输入MySQL安装目录,假设它是5.6的…

MySQL登录中的闪络问题的解决方案

MySQL登录中的闪络问题的解决方案

解决方案,登录,电脑软件,MySQL,MySQL登录中的闪络问题的解决方案 MySQL以前很好地使用过它,但是今天,在输入MySQL之后,输入的密码是闪回来的。在任务管理器中,发现MySQL服务没有启动。当手动启动时,它提示拒绝访问。在因特网上查找问题的原因。…

MySQL错误:对附近使用正确的语法类

MySQL错误:对附近使用正确的语法类

服务器,语法,错误,类型,解决方案,本文阐述了MySQL错误:为使用近供你参考你型= innodb.share语法正确的MySQL服务器版本的解决方案,如下: 首先,问题: 当使用SQL语句构建表时,MySQL报告了以下错误: 您的SQL语法有一个错误;请检查手册 1。 两。解…

js数组的各种操作总结

js数组的各种操作总结

操作,数组,电脑软件,js,数组应该是日常生活中使用频率最高的js代码。在正常的项目中,许多数据可以通过数组存储和操作,除了对象,数组类型应该是js中最常用的类型。 今天,总结一下数组的一些简单和基本操作,并巩固我们的基础知识。 1。如何直接…

词的页面背景时,清除Word2010教程的

词的页面背景时,清除Word2010教程的

操作,教程,清除,背景,页面,字填写页面背景;雨后;,今天是一个常见的大学计算机考试,萧边教你在Word页面背景的技能后雨。 单词页面到后台操作步骤后的雨 单击页面布局;。 点击页面颜色选项,点击填充效果;。 在渐变选项卡上,单击预置;。 在默认的颜…