1

我一直在修改 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>

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

4

1 回答 1

2

通过一些 DOM 操作,您可以做到这一点,但您需要确保将网格背景颜色设置为透明以使其正常工作。在你的情节调用之后:

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

这是一个示例小提琴

于 2012-06-27T14:38:50.583 回答