在情节之上的jqplot网格

时间:2012-06-26 21:32:31

标签: javascript jqplot

我一直在修补jqplot图表,其中网格线位于图形的顶部(或在前面,具体取决于您的视图),而不是默认的背景区域。我已经多次尝试使用z-index覆盖网格。但是,每次尝试都会使整个图形无法正常运行,并且由于某些未知原因我没有收到任何错误。

我正在使用实际填充整个网格的堆积条形图,因此我无法看到任何网格线,它们都隐藏在图形的下方(或后面)。

以下是代码:

<script type="text/javascript" language="javascript">
   $.jqplot.config.enablePlugins = true;

   var plot;
   var data1 = [];
   var data2 = [];
   var index = 0;
   var num = 0;
   var delta = 0;

   $(document).ready(function(){
      for (i=0; i<100; i++) {
         num = getRandomNumber();
         delta = 100 - num;
         index++;
         data1.push([ index, num]);
         data2.push([ index, delta]);
      }

      plot = $.jqplot('graph', [data1, data2],{
                title: 'my title',
                animate: true,
                stackSeries: true,
                seriesDefaults:{
                        renderer:$.jqplot.BarRenderer,
                        rendererOptions: { highlightMouseDown: true },
                        pointLabels: {show: true}
                },
                series: [ {label: 'one'}, {label: 'two'} ],
                seriesColors:['#ff0000', '#0000ff'],
                legend: {
                        show: true,
                        location: 'e',
                        placement: 'outsideGrid'
                },
                grid: {
                        gridLineColor: '#333333',
                        borderWidth: 0
                },
                axesDefaults: {
                        pad: 0,
                        padMin: 0
                },
                axes: {
                        xaxis: {
                                showTicks: false,
                                pad: 0,
                                padMin: 0,
                                rendererOptions: { forceTickAt0: true, forceTickAt100: true }
                        },
                        yaxis: {
                                pad: 0,
                                padMin: 0,
                                rendererOptions: { forceTickAt0: true, forceTickAt100: true }
                        }
                }
      });
   });

   getRandomNumber = function(){
                return Math.floor(Math.random()* 100);
   };
  </script>

任何人都遇到这个要求并知道如何让网格线显示在图表的顶部?感谢

1 个答案:

答案 0 :(得分:2)

使用少量DOM操作可以执行此操作但是您需要确保将网格背景颜色设置为透明,以使其正常工作。你打电话后:

gridCanvas = $($('.jqplot-grid-canvas')[0])
seriesCanvas = $($('.jqplot-series-canvas')[0])
gridCanvas.detach();
seriesCanvas.after(gridCanvas);​

以下是fiddle示例。