Подтвердить что ты не робот

Echarts Медиа-запросы, не работающие с Bootstrap (карусель)

У меня есть карусель с двумя слайдами. Оба слайда используют загрузочные сетки 2x2 для отображения на них графиков. Они работают нормально, однако я пытаюсь внедрить отзывчивые медиа-запросы и не могу заставить работать. Я использовал параметры baseOptions и media для определения, но диаграммы не загружаются и консоль не показывает никаких ошибок.

Я попытался определить контейнер <div> со встроенным стилем width и height, то есть style="width: 100%;height:400px;", и я также попытался определить width и height в CSS так:

.mychart {
        width: 100%;
        height: 400px;
      }

javascript выглядит ниже.

<div id="chart1" style="width: 100%;height:400px;"></div> //with inline style
<div id="chart1" class="mychart"></div> //with CSS class

var myChart1 = echarts.init(document.getElementById('chart1'));
var lpnArr  = [101, 43, 10, 250];
option = {
               title : {
                          text: 'My data Pie',
                          subtext: 'Data as of last batch',
                          x:'center'
                        },
           tooltip : {
                        trigger: 'item',
                        formatter: "{b} : {c} ({d}%)"
                        },
           legend: {
                        orient : 'vertical',
                        x : 'left',
                        data:['Processed','Unprocessed','In RIB','Errors']
                       },
          color: ['#4bc14f','#ff7f50','#da70d6','#d8316f'],
          toolbox: {
                            show : true,
                            feature : {
                                              mark : {show: false},
                                              dataView : {show: false},
                                              magicType : { show: false},
                                              dataZoom : { show : false},
                                              restore : {show: true},
                                              saveAsImage : {show: true}
                                           }
                          },
          calculable : true,
          series : [
                        {
                            name:'Processed',
                            type:'pie',
                            radius : ['50%', '70%'],
                            startAngle : 230,
                            center: ['35%', '50%'],
                            itemStyle : labelFormatter,   //custom formatter
                            data: lpnArr //load chart with data array lpnArr
                        }
                      ]
        }

var mediaQuery = [
                              {   
                                  option: {
                                      series: [
                                          {
                                              radius: ['50%', '70%'],
                                              center: ['35%', '50%']
                                          }
                                      ]
                                  }
                              },
                              {
                                  query: {
                                      minAspectRatio: 1
                                  },
                                  option: {
                                      series: [
                                          {
                                              radius: ['50%', '70%'],
                                              center: ['35%', '50%']
                                          }
                                      ]
                                  }
                              },
                              {
                                  query: {
                                      maxAspectRatio: 1
                                  },
                                  option: {
                                      series: [
                                          {
                                              radius: ['50%', '70%'],
                                              center: ['50%', '35%']
                                          }
                                      ]
                                  }
                              },
                              {
                                  query: {
                                      maxWidth: 500
                                  },
                                  option: {
                                      series: [
                                          {
                                              radius: ['50%', '70%'],
                                              center: ['50%', '35%']
                                          }
                                      ]
                                  }
                              }
                          ];

myChart1.setOption({baseOption : option, 
                         media : mediaQuery});

если я использую его без медиа-запроса, он работает отлично. как это

myChart1.setOption(option);

Используя медиа-запрос в соответствии с документацией вместе с baseOptions и media, диаграммы просто не загружаются, и это также не показывает мне никаких ошибок в консоли, поэтому я не уверен, что Я использую его правильно или нет.

Кстати, у меня также есть это в конце script, чтобы иметь возможность изменять размеры диаграмм при изменении размера окна, но потом я понял, что это не очень отзывчиво -

$(window).on('resize', function(){
                  myChart1.resize();
                });

Элементы элемента начальной загрузки являются <div> элементами внутри другого div с классом BS container-fluid. Код карусели можно найти в this JSFiddle.

4b9b3361

Ответ 1

Медиа-запрос был введен в echart версии 3, тогда как я использовал версию 2 и, следовательно, он не работал. Чрезвычайно странно, что использование media с версией 2 не показывает какой-либо ошибки, и baseOption не показывает никаких ошибок, поэтому я остался царапать голову. Документация не достаточно ясна, чтобы сказать, что медиа-запросы поддерживаются только в версии 3. Поэтому, пробирая через код и потоки GitHub часами и тестируя все их версии js, я пришел к такому выводу.

Недостатком использования e-карт версии 3 является то, что отсутствует тип диаграммы "Дерево", и он намного более узок, чем любая предыдущая версия. Кроме того, он в два раза медленнее, чем версия 2.