Pages - Menu

2016年2月16日 星期二

使用Flot selection以及axlabel導致圖面縮小

來源:Flotchart
API文件:文件
當需要對圖表放大時,會載入jquery.flot.selection.js
但同時又想要使用axislabel顯示單位。
造成的情況,本來不知道是axislabel所導致,因先前使用沒有任何問題。

原始圖

圖面縮小



從jquery.flot.js開始尋找錯誤發生原因,
找到jquery.flot.axislabels.js,
該插件為了要讓標籤能夠再最左邊,
計算axisLabels的寬度,再加上去。
axis.labelWidth += axisLabels[axisName].width;
所以才導致左邊的標籤越來越寬,進而擠壓到圖表的寬度。
知道原因後就好辦了,先在最上面宣告一個變數 firstWidth
(function ($) {
....
   var options = { };
   var firstWidth;
....
...
..
.
})
最後再

axis.labelHeight += axisLabels[axisName].height;
                 
axis.labelWidth += axisLabels[axisName].width;
                 
opts.labelHeight = axis.labelHeight;
                 
opts.labelWidth = axis.labelWidth;
這個的上面加上
                    if (typeof opts.labelWidth == 'undefined') {
                        firstWidth = axis.labelWidth;                      
                    }                  
                    if (axis.labelWidth > firstWidth) {
                        axis.labelWidth = firstWidth;                      
                    }
結束了這個看到眼睛脫窗的bug......

沒有留言:

張貼留言