-
모바일 최적화 : 터치 이벤트WordPress 2023. 12. 13. 22:51
터치 이벤트 처리의 효율성 개선: 현재 스크립트는 터치 시작(touchstart)과 끝(touchend)의 X 좌표를 사용하여 스와이프 방향을 결정합니다. 이 로직은 기본적으로 유효하지만, 스와이프의 감도를 조절할 수 있는 추가적인 로직이 필요할 수 있습니다. 예를 들어, 최소한의 스와이프 거리를 설정하여 더 정확한 제스처 인식이 가능하도록 할 수 있습니다.
드롭다운 메뉴의 접근성 개선: 드롭다운 메뉴를 토글하는 코드는 기능적으로는 문제가 없으나, 접근성 관련 추가 개선이 가능합니다. 예를 들어, 키보드 접근성을 고려하여 keyup 이벤트를 사용하거나 aria-expanded 속성을 토글하여 스크린 리더 사용자에게 메뉴의 상태를 알릴 수 있습니다.
코드 예시
// 터치 슬라이더 기능 개선 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); } });
이 코드는 스와이프 감도를 조절하고, 드롭다운 메뉴의 접근성을 개선합니다.