Skip to content

Commit

Permalink
Fix that setting emphasis.lineStyle.type as solid dose not work. Fix
Browse files Browse the repository at this point in the history
  • Loading branch information
100pah committed Apr 21, 2019
1 parent 0379b6f commit 7480736
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 4 deletions.
17 changes: 13 additions & 4 deletions src/model/mixin/lineStyle.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,9 @@ var getLineStyle = makeStyleMapper(
export default {
getLineStyle: function (excludes) {
var style = getLineStyle(this, excludes);
var lineDash = this.getLineDash(style.lineWidth);
lineDash && (style.lineDash = lineDash);
// Always set lineDash whether dashed, otherwise we can not
// erase the previous style when assigning to el.style.
style.lineDash = this.getLineDash(style.lineWidth);
return style;
},

Expand All @@ -46,7 +47,15 @@ export default {
var lineType = this.get('type');
var dotSize = Math.max(lineWidth, 2);
var dashSize = lineWidth * 4;
return (lineType === 'solid' || lineType == null) ? null
: (lineType === 'dashed' ? [dashSize, dashSize] : [dotSize, dotSize]);
return (lineType === 'solid' || lineType == null)
// Use `false` but not `null` for the solid line here, because `null` might be
// ignored when assigning to `el.style`. e.g., when setting `lineStyle.type` as
// `'dashed'` and `emphasis.lineStyle.type` as `'solid'` in graph series, the
// `lineDash` gotten form the latter one is not able to erase that from the former
// one if using `null` here according to the emhpsis strategy in `util/graphic.js`.
? false
: lineType === 'dashed'
? [dashSize, dashSize]
: [dotSize, dotSize];
}
};
51 changes: 51 additions & 0 deletions test/hoverStyle.html
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@
<div id="mainb1"></div>
<div id="mainb2"></div>
<div id="mainb3"></div>
<div id="mainb4"></div>

<div id="main0"></div>
<div id="main1"></div>
Expand Down Expand Up @@ -328,6 +329,56 @@





<script>
require(['echarts'], function (echarts) {
var option = {
hoverLayerThreshold: hoverLayerThreshold,
series: [{
type: 'graph',
symbolSize: 20,
focusNodeAdjacency: true,
data: [
{value: 100, name: 'aa', x: 100, y: 200},
{value: 150, name: 'bb', x: 450, y: 300},
{value: 200, name: 'cc', x: 200, y: 100},
{value: 250, name: 'dd', x: 450, y: 250}
],
links: [
{source: 'aa', target: 'bb'},
{source: 'aa', target: 'dd'},
{source: 'cc', target: 'bb'}
],
lineStyle: {
color: 'green',
type: 'dashed', // [4, 6],
width: 3
},
emphasis: {
lineStyle: {
color: 'orange',
type: 'solid',
width: 8
// opacity: .8
}
}
}]
};

var chart = testHelper.create(echarts, 'mainb4', {
title: [
'normal line is **green dashed width 3**,',
'should become **orange solid width 8** when hovered'
],
option: option,
height: 200
});
});
</script>



<script>
require(['echarts'], function (echarts) {
var option = {
Expand Down

0 comments on commit 7480736

Please sign in to comment.