미디어위키:Responsive-arrow.js: 두 판 사이의 차이

큰숲백과, 나무를 보지 말고 큰 숲을 보라.
편집 요약 없음
태그: 수동 되돌리기
편집 요약 없음
1번째 줄: 1번째 줄:
console.time("arrow-test");
(function () {
(function () {
     var arrowArray = document.getElementsByClassName("arrow-dataset");
     var arrowArray = document.getElementsByClassName("arrow-dataset");
38번째 줄: 40번째 줄:
                 case "up":
                 case "up":
                     arrow.style['justify-content'] = data.pointDirection === "right" ? "flex-start" : "flex-end"
                     arrow.style['justify-content'] = data.pointDirection === "right" ? "flex-start" : "flex-end"
                     arrowPoint.style['transform-origin'] = data.pointDirection === "left" ?
                     arrowPoint.style['transform-origin'] = (data.pointDirection === "left" ?
                         data.pointLength - data.thick : data.thick + "px 50%";
                         data.pointLength - data.thick : data.thick) + "px 50%";
                     arrowPoint.style['top'] = 0
                     arrowPoint.style['top'] = 0
                     break;
                     break;
58번째 줄: 60번째 줄:
                     arrow.style['min-height'] =
                     arrow.style['min-height'] =
                         (data.pointLength * Math.sin(data.pointDeg * Math.PI / 180) + data.thick) + "px"
                         (data.pointLength * Math.sin(data.pointDeg * Math.PI / 180) + data.thick) + "px"
                    console.log(data.thick)
                     arrow.style['width'] = data.length ? data.length + "px" : null;
                     arrow.style['width'] = data.length ? data.length + "px" : null;
                     arrowShaft.style['width'] = "100%";
                     arrowShaft.style['width'] = "100%";
81번째 줄: 82번째 줄:
                     break;
                     break;
             }
             }
         })()
         })()
     }
     }
})();
})();
console.timeEnd("arrow-test")

2025년 3월 3일 (월) 18:55 판

console.time("arrow-test");

(function () {
    var arrowArray = document.getElementsByClassName("arrow-dataset");
    for (var i = 0; i < arrowArray.length; i++) {
        (function () {
            var arrowData = arrowArray[i];
            var data = Object.create(arrowData.dataset)
            data.thick = Number(data.thick)
            data.deg = Number(data.deg)

            var arrow = arrowData.parentElement;

            var arrowPoint = arrowData.nextElementSibling

            var arrowShaft = arrowPoint.nextElementSibling

            arrowPoint.style['width'] = data.pointLength + "px"
            arrowPoint.style['height'] = data.thick * 2 + "px";
            arrowPoint.style['borderRadius'] = "100px"
            arrowPoint.style['position'] = "absolute"
            arrowPoint.style['background'] = data.color
            arrowShaft.style['background'] = data.color
            arrowShaft.style['position'] = "absolute"
            arrowShaft.style['borderRadius'] = "100px"

            switch (data.direction) {
                case "left":
                    arrow.style['align-items'] = data.pointDirection === "right" ? "flex-end" : "flex-start"
                    arrowPoint.style['transform-origin'] = data.thick + "px 50%";
                    arrowPoint.style['left'] = 0
                    break;


                case "right":
                    arrow.style['align-items'] = data.pointDirection === "right" ? "flex-start" : "flex-end"
                    arrowPoint.style['transform-origin'] = data.pointLength - data.thick + "px 50%";
                    arrowPoint.style['right'] = 0
                    break;
                case "up":
                    arrow.style['justify-content'] = data.pointDirection === "right" ? "flex-start" : "flex-end"
                    arrowPoint.style['transform-origin'] = (data.pointDirection === "left" ?
                        data.pointLength - data.thick : data.thick) + "px 50%";
                    arrowPoint.style['top'] = 0
                    break;

                case "down":
                    arrow.style['justify-content'] = data.pointDirection === "right" ? "flex-end" : "flex-start"
                    arrowPoint.style['transform-origin'] = (data.pointDirection === "right" ?
                        data.pointLength - data.thick : data.thick) + "px 50%";
                    arrowPoint.style['bottom'] = 0
                    break;
                default:
                    break;
            }

            switch (data.direction) {
                case "left":
                case "right":
                    arrow.style['min-height'] =
                        (data.pointLength * Math.sin(data.pointDeg * Math.PI / 180) + data.thick) + "px"
                    arrow.style['width'] = data.length ? data.length + "px" : null;
                    arrowShaft.style['width'] = "100%";
                    arrowShaft.style['height'] = data.thick * 2 + "px"
                    arrowPoint.style['rotate'] = (data.pointDirection === "left" ?
                        data.deg : - data.deg) + "deg"
                    break;

                case "up":
                case "down":
                    arrow.style['min-width'] =
                        (data.pointLength * Math.sin(data.pointDeg * Math.PI / 180) + data.thick) + "px"
                    arrow.style['height'] = (data.length || 100) + "px";
                    arrowShaft.style['width'] = data.thick * 2 + "px";
                    arrowShaft.style['height'] = "100%";
                    arrowPoint.style['rotate'] = (data.pointDirection === "left" ?
                        - 90 + data.deg : 90 - data.deg) + "deg"

                    break;

                default:
                    break;
            }


        })()
    }
})();

console.timeEnd("arrow-test")