ハイチャートツールチップがグラフ自体とオーバーラップするという問題に直面しています。以下を見つけてください。同じことを表す画像:
LSがアクティブな場合:
LSが非アクティブ化されている場合
(を使用してグラフの動的高さを設定しているため、2つのグラフの縮尺が異なります。 $(window).height()。LSがアクティブな場合、Salesforceによってまだ修正されていません。)
コード:
ヘルパー:
drawChart : function(component, helper) { if(component.isValid() && component.get("v.isResourcesLoaded") && component.get("v.isDataChanged")) { var stackedColumnChartObj = new Highcharts.Chart({ chart: { renderTo: component.find("stackedColumnChart").getElement() }, title: { text: null }, xAxis: { categories: labelList, title: { text: null }, labels: { enabled: true, format: "`{value}" } }, yAxis: [{ enabled: true, title: { text: null } }], plotOptions: { series: { animation: false, cursor: "pointer", marker: { enabled: false } } }, tooltip: { useHTML: true, borderWidth: 0, borderRadius: 0, backgroundColor:"rgba(255,255,255,0)", shadow: false, formatter: function(){ var s = this.series.name + ": "+ "<br/>Total: " +this.stackTotal; return ("<div class="tooltip">" + s + "</div>"); }, enabled: !component.get("v.isDrillDown") }, credits: { enabled: false }, series: columnDataList }); }
レンダラー:
({ afterRender: function(component, helper) { this.superAfterRender(); }, rerender: function(component, helper) { this.superRerender(); helper.drawChart(component, helper); } })
CSS:-
.THIS .highcharts-tooltip span .tooltip{ z-index:999999999 !important; border: 1px solid; background-color: white; padding:5px; border-radius: 4px; }
この問題は、ロッカーサービスが無効になっている場合は発生しません。しかし、LSが非アクティブ化されたときにこれが完全に機能することを望んでいます。誰かがこれに関する洞察を提供できれば非常に役立ちます。
編集: Pawelによる「私はツールチップをHTMLとしてレンダリングしたという提案です(上記のHighcharts初期化コードを編集しました)。ツールチップはChromeデバイスシミュレータでレンダリングされます。ただし、iPadとiPhoneでは、グラフをクリックすると次のエラーがスローされます。
TypeError:nullはオブジェクトではありません(「e.call」を評価)
TypeError:undefinedはオブジェクトではありません( “charts [H.hoverChartIndex] .mouseIsDown”を評価しています)
コメント
- ばかげた質問かもしれませんが、cssを使用してz-index 10000を作成したり、何かを大きくして前面に表示したりするとどうなりますか?少しハッキー…
- @Ericの提案に感謝します。ただし、残念ながら、Highchartsはツールチップとグラフをsvg要素としてレンダリングするため、これは'機能しません。ですから、'(JSを使用している)並べ替えが必要だと思います。また、ロッカーサービスが無効になっている場合、この問題は発生しません。 ' Locker Serviceがアクティブ化されると、この問題が発生します。
- こんにちは@PawełFusこの問題は、Highchartsの最新の安定バージョンとで修正されています。 Salesforce 'の冬の' 1712.1パッチ。また、エラー16の古い問題は、最新の安定バージョンでも引き続き発生します。 salesforce.stackexchange.com/questions/147917/ …
- よろしくお願いします! #16の問題について-コンポーネントは毎回Highchartsをロードします。ハイチャートは一度だけロードする必要があります。
- こんにちは@PawełFus簡単な更新です。ハイチャートエラー#16は、WindowsデスクトップのMicrosoftEdgeブラウザに表示されます。