ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 모바일 최적화 : 터치 이벤트
    WordPress 2023. 12. 13. 22:51

     

    터치 이벤트 처리의 효율성 개선: 현재 스크립트는 터치 시작(touchstart)과 끝(touchend)의 X 좌표를 사용하여 스와이프 방향을 결정합니다. 이 로직은 기본적으로 유효하지만, 스와이프의 감도를 조절할 수 있는 추가적인 로직이 필요할 수 있습니다. 예를 들어, 최소한의 스와이프 거리를 설정하여 더 정확한 제스처 인식이 가능하도록 할 수 있습니다.

     

    드롭다운 메뉴의 접근성 개선: 드롭다운 메뉴를 토글하는 코드는 기능적으로는 문제가 없으나, 접근성 관련 추가 개선이 가능합니다. 예를 들어, 키보드 접근성을 고려하여 keyup 이벤트를 사용하거나 aria-expanded 속성을 토글하여 스크린 리더 사용자에게 메뉴의 상태를 알릴 수 있습니다.

    The image shows a hand interacting with a smartphone screen, demonstrating tou
    The image shows a hand interacting with a smartphone screen, demonstrating tou

     

    코드 예시

    // 터치 슬라이더 기능 개선
    let touchstartX = 0;
    let touchendX = 0;
    const slider = document.getElementById('slider');
    const minSwipeDistance = 30; // 최소 스와이프 거리 설정
    slider.addEventListener('touchstart', e => {
        touchstartX = e.changedTouches[0].screenX;
    });
    
    slider.addEventListener('touchend', e => {
        touchendX = e.changedTouches[0].screenX;
        handleGesture();
    });
    
    function handleGesture() {
        let swipeDistance = touchendX - touchstartX;
        if (Math.abs(swipeDistance) < minSwipeDistance) return; // 최소 거리 미달시 무시
        if (swipeDistance < 0) {
            console.log('Swiped left');
            // 왼쪽으로 슬라이드할 때의 동작 추가
        } else if (swipeDistance > 0) {
            console.log('Swiped right');
            // 오른쪽으로 슬라이드할 때의 동작 추가
        }
    }
    
    // 드롭다운 메뉴의 접근성 개선
    $('.dropdown-toggle').on('click keyup', function(e) {
        if (e.type === 'click' || e.key === 'Enter') {
            $(this).next('.dropdown-menu').toggle();
            let expanded = $(this).attr('aria-expanded') === 'true' || false;
            $(this).attr('aria-expanded', !expanded);
        }
    });

     

     

    이 코드는 스와이프 감도를 조절하고, 드롭다운 메뉴의 접근성을 개선합니다. 

     

Copyright 2024