This is an automated email from the ASF dual-hosted git repository.

sushuang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-echarts.git


The following commit(s) were added to refs/heads/master by this push:
     new 39e7ad1  Make brushed elements higher than normal elements on z, 
avoiding them be overlapped by normal elements.
39e7ad1 is described below

commit 39e7ad1ac583ea4918087bc758c3632f6a8af1b3
Author: sushuang <sushuang0...@gmail.com>
AuthorDate: Sun Apr 22 01:50:52 2018 +0800

    Make brushed elements higher than normal elements on z, avoiding them be 
overlapped by normal elements.
---
 src/chart/helper/Symbol.js        | 13 ++++++
 src/component/brush/BrushModel.js |  8 +++-
 src/visual/VisualMapping.js       | 10 +++++
 test/brush3.html                  | 92 +++++++++++++++++++++++++++++++++++++++
 4 files changed, 122 insertions(+), 1 deletion(-)

diff --git a/src/chart/helper/Symbol.js b/src/chart/helper/Symbol.js
index eccae51..8ec0ba3 100644
--- a/src/chart/helper/Symbol.js
+++ b/src/chart/helper/Symbol.js
@@ -271,6 +271,19 @@ symbolProto._updateCommon = function (data, idx, 
symbolSize, seriesScope) {
         elStyle.opacity = opacity;
     }
 
+    var liftZ = data.getItemVisual(idx, 'liftZ');
+    var z2Origin = symbolPath.__z2Origin;
+    if (liftZ != null) {
+        if (z2Origin == null) {
+            symbolPath.__z2Origin = symbolPath.z2;
+            symbolPath.z2 += liftZ;
+        }
+    }
+    else if (z2Origin != null) {
+        symbolPath.z2 = z2Origin;
+        symbolPath.__z2Origin = null;
+    }
+
     var useNameLabel = seriesScope && seriesScope.useNameLabel;
 
     graphic.setLabelStyle(
diff --git a/src/component/brush/BrushModel.js 
b/src/component/brush/BrushModel.js
index 273e1a4..faf64b8 100644
--- a/src/component/brush/BrushModel.js
+++ b/src/component/brush/BrushModel.js
@@ -82,9 +82,15 @@ var BrushModel = echarts.extendComponentModel({
             thisOption, newOption, ['inBrush', 'outOfBrush']
         );
 
-        thisOption.inBrush = thisOption.inBrush || {};
+        var inBrush = thisOption.inBrush = thisOption.inBrush || {};
         // Always give default visual, consider setOption at the second time.
         thisOption.outOfBrush = thisOption.outOfBrush || {color: 
DEFAULT_OUT_OF_BRUSH_COLOR};
+
+        if (!inBrush.hasOwnProperty('liftZ')) {
+            // Bigger than the highlight z lift, otherwise it will
+            // be effected by the highlight z when brush.
+            inBrush.liftZ = 5;
+        }
     },
 
     /**
diff --git a/src/visual/VisualMapping.js b/src/visual/VisualMapping.js
index 56f7652..c25a455 100644
--- a/src/visual/VisualMapping.js
+++ b/src/visual/VisualMapping.js
@@ -188,6 +188,16 @@ var visualHandlers = VisualMapping.visualHandlers = {
         _doMap: makeDoMap([0, 1])
     },
 
+    liftZ: {
+        applyVisual: makeApplyVisual('liftZ'),
+        _doMap: {
+            linear: doMapFixed,
+            category: doMapFixed,
+            piecewise: doMapFixed,
+            fixed: doMapFixed
+        }
+    },
+
     symbol: {
         applyVisual: function (value, getter, setter) {
             var symbolCfg = this.mapValueToVisual(value);
diff --git a/test/brush3.html b/test/brush3.html
new file mode 100644
index 0000000..da59f65
--- /dev/null
+++ b/test/brush3.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1" />
+        <script src="lib/esl.js"></script>
+        <script src="lib/config.js"></script>
+        <script src="lib/jquery.min.js"></script>
+        <script src="lib/facePrint.js"></script>
+        <script src="lib/testHelper.js"></script>
+        <link rel="stylesheet" href="lib/reset.css" />
+    </head>
+    <body>
+        <style>
+            .test-title {
+                background: #146402;
+                color: #fff;
+            }
+        </style>
+
+
+        <div id="main0"></div>
+
+
+        <script>
+
+            require([
+                'echarts'
+            ], function (echarts) {
+
+                var data = [];
+                for (var i = 0; i < 500; i++) {
+                    data.push([
+                        Math.random() * 10,
+                        Math.random() * 10
+                    ]);
+                }
+
+                var option = {
+                    toolbox: {
+                        feature: {
+                            brush: {
+                                type: ['polygon', 'rect', 'lineX', 'lineY', 
'keep', 'clear']
+                            }
+                        }
+                    },
+                    brush: {
+                        xAxisIndex: 'all',
+                        brushLink: 'all'
+                    },
+                    grid: {
+                        width: 300,
+                        height: 200
+                    },
+                    xAxis: {
+                        min: 0,
+                        max: 10
+                    },
+                    yAxis: {
+                        min: 0,
+                        max: 10
+                    },
+                    series: {
+                        type: 'scatter',
+                        symbolSize: 20,
+                        data: data
+                    }
+                };
+
+                var chart = testHelper.create(echarts, 'main0', {
+                    title: 'The highlight symbol should on the top (not be 
overlapped)',
+                    option: option,
+                    info: {
+                        brush: option.brush
+                    }
+                });
+
+                chart && chart.dispatchAction({
+                    type: 'brush',
+                    areas: [
+                        {
+                            gridIndex: 0,
+                            brushType: 'polygon',
+                            coordRange: [[3, 2], [7, 2], [7, 6], [4, 3]]
+                        }
+                    ]
+                });
+            });
+
+        </script>
+    </body>
+</html>
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
sushu...@apache.org.

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@echarts.apache.org
For additional commands, e-mail: commits-h...@echarts.apache.org

Reply via email to