개발일지/Web

[Dev] mmt-donut-chart.js 개발일지

zineeworld 2015. 11. 5. 17:42
반응형

MMT-DONUT-CHART.JS



12/02 수

- default chart option 추가 시 생긴 버그 수정

if(parameters.defaultChart==null && percent==0){

percent = 0.001;

}



12/01 화

- default chart option 추가

- 0% 버그 수정




11/27 금

- 버그 수정 ( '' → {} )

if(parameters==undefined){
    parameters = {};
}



11/20 금

- 0% 에서 백그라운드 차트 안그려지는 현상 수정

- synchronize between 'drawing chart' and 'counting number'



11/16 월
- fill with gradient

- 참고 http://stackoverflow.com/questions/8732401/how-to-figure-out-all-colors-in-a-gradient

function makeGradientColor(sColor, eColor, percent) {
        var newColor = {};
        var sColor = {};
        var eColor = {};

        function makeChannel(a, b) {
            return(a + Math.round((b-a)*(percent/100)));
        }

        function makeColorPiece(num) {
            num = Math.min(num, 255);   // not more than 255
            num = Math.max(num, 0);     // not less than 0
            var str = num.toString(16);
            if (str.length < 2) {
                str = "0" + str;
            }
            return(str);
        }

        sColor.r = parseInt(startColor.slice(1, 3), 16);
        sColor.g = parseInt(startColor.slice(3, 5), 16);
        sColor.b = parseInt(startColor.slice(5, 7), 16);

        eColor.r = parseInt(endColor.slice(1, 3), 16);
        eColor.g = parseInt(endColor.slice(3, 5), 16);
        eColor.b = parseInt(endColor.slice(5, 7), 16);

        newColor.r = makeChannel(sColor.r, eColor.r);
        newColor.g = makeChannel(sColor.g, eColor.g);
        newColor.b = makeChannel(sColor.b, eColor.b);

        newColor.cssColor = "#" + makeColorPiece(newColor.r) + makeColorPiece(newColor.g) + makeColorPiece(newColor.b);
        return(newColor.cssColor);
    }



11/5 목 (v.1.0.0 release)
- progressCounter() : using javascript instead of jquery



11/2 월
- parameter undefined case add
- github index page pushed



10/28 수
- doughnutCanvas 스타일 속성 추가, 생성 위치 변경 (기존에는 body 직전에 생겨서 불필요한 공간을 차지해서 스크롤이 생김)

window.devicePixelRatio = 1;    // HJ for mobile issue
var size = outerCanvasSize - doughnutPadding * 2;
doughnutCanvas = document.createElement("canvas");
doughnutCanvas.width = size;
doughnutCanvas.height = size;
doughnutCanvas.style.visibility = 'hidden';
doughnutCanvas.style.position = 'absolute';
doughnutCanvas.style.top = doughnutPadding+'px';
doughnutCanvas.style.left = doughnutPadding+'px';
document.getElementById(chartName).parentNode.style.position = 'relative';
document.getElementById(chartName).parentNode.appendChild(doughnutCanvas);


- 모바일 canvas 이슈 (devicePixelRatio가 원인!)
- pointSize = 0 → remove point 되도록 수정

if(parameters.pointSize==0)    // dot remove
    pointSize = 0;



10/27 화
- clear function 수정

outerCanvasContext.clearRect(0, 0, outerCanvasSize, outerCanvasSize);


반응형