2014-09-20 2 views
0

Можно ли удалить заголовок оси Y в соответствии с шириной окна просмотра?Удалить название на основе ширины окна просмотра

я могу добиться этого с помощью CSS вот так:

@media (max-width:480px) { 
    .highcharts-yaxis-title { 
    display:none; 
    } 
} 

Проблема с этим, однако, является то, что все еще существует большой разрыв, где должно появиться название.

+2

Если вы нормально использовать Javascript: http://jsfiddle.net/39xBU/55/ – melancia

+0

Что такое CSS декларация для .highcharts-YAxis-заголовка элемента? – Chico3001

+0

Ваше заявление должно работать, и не должно быть никакого пробела, когда заголовок исчезнет. Должно быть что-то еще, создающее этот пробел. Не могли бы вы предоставить рабочую демонстрацию, воспроизводящую вашу проблему? –

ответ

1

Вы можете написать функцию, которая проверяет на chartWidth, и, соответственно, либо дает название или отключить ее с помощью метода Axis.Update

var isTitleShowing=true; 
function updateAxisTitle(chart) { 
    if (chart.chartWidth < 500 && isTitleShowing) { 
     console.log('Disabling'); 
     isTitleShowing = false; 
     $.each(chart.yAxis, function (index, yAxis) { 
      yAxis.update({ 
       title: { 
        enabled: false 
       } 
      }, false); 
     }); 
     // Calling redraw inside the redraw handler itself throws an exception 
     // Delaying the redraw by a few ms lets the current redraw cycle finish 
     setTimeout(function() { 
      chart.redraw(); 
     }, 20); 
    } else if (chart.chartWidth >= 500 && !isTitleShowing) { 
     console.log('Enabling'); 
     isTitleShowing = true; 
     for (var i = 0; i < chart.yAxis.length; i++) { 
      chart.yAxis[i].update({ 
       title: { 
        enabled: true 
       } 
      }, false); 
     } 
     setTimeout(function() { 
      chart.redraw(); 
     }, 20); 
    } 
} 

Вы можете добавить эту функцию в качестве обработчика к redraw и load события

chart: { 
    events: { 
     redraw: function() { 
      updateAxisTitle(this); 
     }, 
     load: function() { 
      updateAxisTitle(this); 
     } 
    } 
} 

Handling Chart Resizing @ jsFiddle

+0

В итоге я сделал что-то похожее на это. к сожалению, это невозможно сделать в css, но это следующее лучшее. – tau

0

Он должен работать ... если вы не добавляете что-то внутри, которое влияет на высоту, вы пробовали что-то вроде этого?

@media (max-width:480px) { 
    .highcharts-yaxis-title { 
    display:none; 
    height: 0; 
    } 
} 
+0

, что оставляет разрыв. кажется, что highcharts не изменяет размер остальной части себя. – tau

0

Проверьте, сможет ли this помочь вам.

$(window).resize(function(){ 
    var windowWidth = $(window).width() 
    if(windowWidth<=480){ 
     $('#y1').click(); 
    } 
}) 
Смежные вопросы