내 웹 사이트의 경우 사용자가 다양한 svg 요소를 클릭 할 수 있기를 바랍니다.document.elementFromPoint를 사용하여 가까운 경로를 얻으십시오
사용자가 묶인 모양을 클릭 할 수 있도록 빠른 기능을 코딩했습니다. 기본적으로 document.elementFromPoint(x, y)
을 실행합니다. 클릭 할 수있는 영역이 있으므로 둘러싸인 모양에 효과적입니다. 그러나 열린 경로는 크기가 1-2 픽셀 밖에 없으므로 클릭하기가 쉽지 않습니다.
사용자가 '닫기'를 클릭하여 경로를 선택할 수 있도록 허용하고 싶습니다. 예를 들어 경로에서 클릭 거리가 10 픽셀 이하이면 경로가 선택됩니다. 나는 이것을 위해 수학적 알고리즘을 쓸 수있다. (Ray-Casting을 사용하여 예를 들어 10 픽셀 만 사용하거나, 점을 10px 반경 원으로 바꾸고 경로와 교차점을 확인한다.) 그러나 내 직감은 더 쉬운 방법이 있어야한다고 말한다. 아마도 CSS를 통해.
이 경로의 획이 선택을위한 두께가 10 픽셀이지만 눈에 띄게 1 픽셀 두껍습니다 (경계 상자가 아닌 경로에 '패딩'이있는 경우) . 나는 또한 pointer-events
을 보았지만 경계 상자 (다른 모양을 선택하는 것을 피하기 위해 사용하지 않을 것임)를 제외하고는 아무 유용한 설정도 보지 못했습니다. 자바 스크립트 나 CSS에서 활용할 수있는 것이 있나요? (큐빅 베 지어 등에서는 추악해질 수 있기 때문에) 경로를 직접 계산하지 않고도이 작업을 수행 할 수 있습니까?
또한 HTML5 앱이라는 것을 언급해야합니다. 따라서 이전 버전과의 호환성은 신경 쓰지 않아도됩니다.
꽤 잘 작동합니다. 두 경로를'use'를 통해 참조하는 단일'symbol' 요소 안에 넣었습니다. 이 방법을 사용하면 두 경로가 모두 자동으로 같은 모양의 일부가됩니다. –