ButtonClick을 통해 런타임 동안 차트 js 표시 / 숨기기 범례

dev123

안녕하세요, 버튼을 클릭하여 내 라인 차트 (chart.js)의 범례를 표시하거나 숨기고 싶습니다.

나는 이것을 지금까지 시도했다.

다음 코드는 scatterChart.legend.options.display의 값을 변경하지만 scatterChart.update ()를 실행하면 값이 자동으로 초기 값으로 변경됩니다!

function showHideLegend() {
    console.log(scatterChart.legend.options.display);   // -> "inital-value" e.g.: true
    if (scatterChart.legend.options.display == true) {
        scatterChart.legend.options.display = false;
    } else {
        scatterChart.legend.options.display = true;
    }
    console.log(scatterChart.legend.options.display);   // -> value successfully changed e.g.: false
    scatterChart.update();
    //Chart.defaults.global.legend.display = false;     // <- does not have an effect
    console.log(scatterChart.legend.options.display);   // -> "inital-value" e.g.: true
}

function initMap() {
    scatterChart = new Chart(document.getElementById("scatterChart"), {
        type: 'line',
        data: {
            /*datasets: [
            ]
            */
        },
        showScale: false,
        options: {
            legend: {
                position: 'right',
                labels: {
                    fontSize: 15
                }
            }
        }
    });

HTML

<canvas id="scatterChart" style="width: 1920px; height: 1080px; background-image:url('image.jpg'); background-size: 100% 100%;"></canvas>
<div id="scatterLegend"> //howToPutLegendHere??// </div>
<input type="button" value="Show/Hide Legend" onclick="showHideLegend()">
요르단 윌리스

chart.js 인스턴스 객체에서 잘못된 범례 구성을 업데이트하려고 한 것 같습니다. 여기에 올바른 방법이 있습니다.

document.getElementById('hideLEgend').addEventListener('click', function() {
  // toggle visibility of legend
  myLine.options.legend.display = !myLine.options.legend.display;
  myLine.update();
});

업데이트하려고했던 것 (예 chart.legend.options:)은 기본 범례 구성 개체입니다. 이것은 차트의 options.legend구성 에서 정의한 모든 옵션과 병합됩니다 .

다음은 버튼 클릭의 범례 표시 / 숨기기 동작을 보여주는 코드 펜 예제 입니다.

내장 된 범례를 사용하지 않도록 선택하고 페이지의 어느 곳에서나 순수한 HTML / CSS로 범례를 생성 한 다음 jQuery (또는 표준 자바 스크립트)를 사용하여 표시하거나 숨길 수 있습니다. 표시 / 숨기기에 대한 예제는 제공하지 않지만 ( jQuery의 표시 / 숨기기 기능 참조 ) 사용자 지정 범례를 생성하는 방법을 보여줄 것입니다. 먼저 options.legendCallback옵션을 사용하여 사용자 지정 범례를 생성하는 함수를 만들어야합니다.

options: {
  legend: {
    display: false,
    position: 'bottom'
  },
  legendCallback: function(chart) {
    var text = [];
    text.push('<ul class="' + chart.id + '-legend">');
    for (var i = 0; i < chart.data.datasets.length; i++) {
    text.push('<li><div class="legendValue"><span style="background-color:' + chart.data.datasets[i].backgroundColor + '">&nbsp;&nbsp;&nbsp;&nbsp;</span>');

    if (chart.data.datasets[i].label) {
      text.push('<span class="label">' + chart.data.datasets[i].label + '</span>');
    }

    text.push('</div></li><div class="clear"></div>');
    }

    text.push('</ul>');

    return text.join('');
  }
}

그런 다음 .generateLegend()프로토 타입 메서드를 사용하여 템플릿 ( legendCallback위에 정의 된 함수 를 실행)을 생성하고 이를 DOM에 삽입합니다.

$('#legend').prepend(mybarChart.generateLegend());

다음은 사용자 지정 범례 접근 방식을 보여주는 코드 펜 예제 입니다. legendCallback범례 구조에 원하는 HTML을 사용 하도록 함수를 수정 한 다음 표준 CSS를 사용하여 스타일을 지정할 수 있습니다 . 마지막으로 자바 스크립트를 사용하여 버튼 클릭시 표시 / 숨기기를합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

차트 JS : 범례에서 일부 레이블 숨기기

분류에서Dev

d3.js 막대 차트-범례 클릭시 막대 표시 / 숨기기. 올바르게 필터링하는 방법?

분류에서Dev

동일한보기에 두 개의 차트가있을 때 Primefaces 차트 범례를 독립적으로 표시하거나 숨기는 방법은 무엇입니까?

분류에서Dev

지시문을 통해 범위 업데이트. 모범 사례

분류에서Dev

차트 범례에서 값을 숨기는 옵션이 chart.js에 있습니까?

분류에서Dev

Highchart에서 범례를 동적으로 숨기거나 표시

분류에서Dev

Chart.JS : 데이터 세트 숨기기 / 숨기기 해제시 차트 크기 조정을 중지 하시겠습니까?

분류에서Dev

그리드 선을 숨기지 만 chart.js에 범례를 표시하는 방법

분류에서Dev

퓨전 차트로 원형 차트 안에 범례 표시

분류에서Dev

chart.js의 범례에 포인트 스타일 표시

분류에서Dev

다른 섹션에 대해 동일한 클래스가있는 확인란을 통해 텍스트 영역 숨기기 / 표시

분류에서Dev

대시 보드에서 개체 / 범례 숨기기 해제 Tableau

분류에서Dev

항목을 표시하거나 숨기는 동안 사이트 위치 유지

분류에서Dev

런타임 상태 표시 줄 숨기기 / 표시 iOS 9+

분류에서Dev

차트 범례가 두 가지 색상을 나타내도록 만들기

분류에서Dev

런타임시 포틀릿 표시 / 숨기기

분류에서Dev

녹에서 기판 런타임을 개발하는 동안 매크로를 사용해야합니까?

분류에서Dev

값이 0 인 경우 dc.js 원형 차트 / 범례에서 항목 숨기기

분류에서Dev

렌더링 창을 표시하는 동안 pysfml이 런타임에 중단됨

분류에서Dev

비디오를 프레임 버퍼로 렌더링하는 동안 가상 콘솔을 숨기는 모범 사례

분류에서Dev

배치 파일을 실행하는 동안 명령 프롬프트에 표시되는 명령 숨기기

분류에서Dev

이러한 점근 표기법과 런타임에 대해 혼동

분류에서Dev

런타임시 동적 함수 해결

분류에서Dev

d3.js 원형 차트에 표시되지 않는 범례

분류에서Dev

플래시 게임의 성능을 향상시키기 위해 hitTest 호출을 줄이는 모범 사례

분류에서Dev

범례 차트 엑셀 제거 / 숨기기

분류에서Dev

기능의 런타임을 얻기 위해 타이머 사용

분류에서Dev

SSRS 2012 열 이름을 기반으로 다른 데이터 세트에서 차트 시리즈 범례 설정

분류에서Dev

Google 선 차트 범례 표시 이름

Related 관련 기사

  1. 1

    차트 JS : 범례에서 일부 레이블 숨기기

  2. 2

    d3.js 막대 차트-범례 클릭시 막대 표시 / 숨기기. 올바르게 필터링하는 방법?

  3. 3

    동일한보기에 두 개의 차트가있을 때 Primefaces 차트 범례를 독립적으로 표시하거나 숨기는 방법은 무엇입니까?

  4. 4

    지시문을 통해 범위 업데이트. 모범 사례

  5. 5

    차트 범례에서 값을 숨기는 옵션이 chart.js에 있습니까?

  6. 6

    Highchart에서 범례를 동적으로 숨기거나 표시

  7. 7

    Chart.JS : 데이터 세트 숨기기 / 숨기기 해제시 차트 크기 조정을 중지 하시겠습니까?

  8. 8

    그리드 선을 숨기지 만 chart.js에 범례를 표시하는 방법

  9. 9

    퓨전 차트로 원형 차트 안에 범례 표시

  10. 10

    chart.js의 범례에 포인트 스타일 표시

  11. 11

    다른 섹션에 대해 동일한 클래스가있는 확인란을 통해 텍스트 영역 숨기기 / 표시

  12. 12

    대시 보드에서 개체 / 범례 숨기기 해제 Tableau

  13. 13

    항목을 표시하거나 숨기는 동안 사이트 위치 유지

  14. 14

    런타임 상태 표시 줄 숨기기 / 표시 iOS 9+

  15. 15

    차트 범례가 두 가지 색상을 나타내도록 만들기

  16. 16

    런타임시 포틀릿 표시 / 숨기기

  17. 17

    녹에서 기판 런타임을 개발하는 동안 매크로를 사용해야합니까?

  18. 18

    값이 0 인 경우 dc.js 원형 차트 / 범례에서 항목 숨기기

  19. 19

    렌더링 창을 표시하는 동안 pysfml이 런타임에 중단됨

  20. 20

    비디오를 프레임 버퍼로 렌더링하는 동안 가상 콘솔을 숨기는 모범 사례

  21. 21

    배치 파일을 실행하는 동안 명령 프롬프트에 표시되는 명령 숨기기

  22. 22

    이러한 점근 표기법과 런타임에 대해 혼동

  23. 23

    런타임시 동적 함수 해결

  24. 24

    d3.js 원형 차트에 표시되지 않는 범례

  25. 25

    플래시 게임의 성능을 향상시키기 위해 hitTest 호출을 줄이는 모범 사례

  26. 26

    범례 차트 엑셀 제거 / 숨기기

  27. 27

    기능의 런타임을 얻기 위해 타이머 사용

  28. 28

    SSRS 2012 열 이름을 기반으로 다른 데이터 세트에서 차트 시리즈 범례 설정

  29. 29

    Google 선 차트 범례 표시 이름

뜨겁다태그

보관