CSS 태그의 pointer-events : none은 SVG 요소를 마우스 이벤트의 대상으로 만들지 않지만 하나의 스택 요소 만 이벤트의 대상이 될 수 있습니다. 마우스 이벤트가 커서 아래에있는 모든 요소를 대상으로하는 간단한 방법이있어 테두리가있는 상자에서 이벤트가 발생하면 누적 된 요소 집합의 이벤트가 모두 트리거됩니다.누적 된 SVG 요소에서 mouseover 이벤트를 트리거하는 방법
답변
는 SVGSVGElement의 방법 (<svg>
) 주어진 사각형과 교차 모든 요소를 반환합니다 getIntersectionList()
라고 있습니다.
예를 들어 클릭하면 모든 SVG 모양에 임의의 색상을 부여하는 코드 스 니펫이 있습니다. 불행하게도
var mysvg = document.getElementById("mysvg");
mysvg.addEventListener('click', function(evt) {
var hitRect = mysvg.createSVGRect();
hitRect.x = evt.clientX;
hitRect.y = evt.clientY;
// (leave width & height as 0)
var elems = mysvg.getIntersectionList(hitRect, null);
for (i=0; i<elems.length; i++) {
// Give each element under the mouse a random fill colour
elems.item(i).setAttribute('fill', "rgb("+rnd()+","+rnd()+","+rnd()+")");
}
});
function rnd() {
return Math.floor(Math.random() * 255.99);
}
<svg id="mysvg">
<rect width="150" height="100" fill="#393"/>
<rect x="120" y="20" width="140" height="130" fill="orange"/>
<rect x="220" y="0" width="80" height="130" fill="red"/>
</svg>
Firefox에서는 결코 구현되지 않았습니다. –
아 맞습니다. 버그를 제대로 읽지 못했습니다. 그것은 단지 제안 된 패치였습니다. https://bugzilla.mozilla.org/show_bug.cgi?id=501421 –
평소처럼 크롬이 게임보다 앞서 있습니다. – sakurashinken
- 1. delegate()를 사용하여 이벤트를 처리하는 요소에서 이벤트를 트리거하는 방법 (
- 2. 크롬에서 mouseover/mouseout 이벤트를 트리거하는 d3.drag를 중지하는 방법
- 3. ul 요소에서 focusout 이벤트를 트리거하는 방법은 무엇입니까?
- 4. 누적 된 svg 이미지의 일부를 onclick하는 방법
- 5. Dropdown Extender를 사용하여 OnSelectedIndexChanged 이벤트를 트리거하는 방법
- 6. SVG animation 누적 값을 적용하는 방법
- 7. magento로받은 지불 이벤트를 트리거하는 방법?
- 8. svg에서 이벤트를 트리거하는 방법 <switch>
- 9. d3 텍스트 뒤의 개체에서 이벤트를 트리거하는 방법
- 10. DOM에서 복제 된/삽입 된 요소에 이벤트를 트리거하는 방법은 무엇입니까?
- 11. overlayview 내부에서 Google지도 이벤트를 트리거하는 방법
- 12. ajaxComplete 이벤트를 수동으로 트리거하는 방법
- 13. 여러 MouseEvent 이벤트를 트리거하는 방법
- 14. jQuery mouseover with timing
- 15. HTML 요소에서 Esc 키 이벤트를 올바르게 트리거하는 방법은 무엇입니까?
- 16. 구성 요소 내부의 요소에서 전환 이벤트를 트리거하는 방법은 무엇입니까?
- 17. 캡처 단계에서 사용자 지정 이벤트를 트리거하는 방법
- 18. 누구나 SVG에서 각도 ng-mouseover 이벤트를 수행하는 방법을 알고 있습니까?
- 19. SVG 그룹 Mouseover/Mouseout 이벤트
- 20. svg begin = "mouseover"not working
- 21. 여러 요소에서 이벤트를 제거하는 방법
- 22. 요소에서 위임 된 이벤트를 선택적으로 바인딩 해제하는 방법은 무엇입니까?
- 23. 객체의 SVG 요소에서 마우스 이벤트를 캡처하고 부모 컨테이너 div
- 24. 중첩 된 SVG 요소로 d3.on ("mouseover") 이벤트가 작동하지 않습니다.
- 25. d3 mouseover on 요소가 svg mousemove와 충돌합니다
- 26. 클릭 이벤트가있는 svg 경로에서 Featherlight 갤러리를 트리거하는 방법
- 27. 오버라이드 된 이벤트를 (가능하게) 트리거하는 방법은 무엇입니까?
- 28. jQuery를 사용하여 동적으로 추가 된 입력 HTML 요소에서 mouseover 이벤트를 캡처하는 방법은 무엇입니까?
- 29. UIBarButtonItem 동작에서 숨겨진 UIButton의 이벤트를 트리거하는 방법
- 30. 이벤트를 바인드/트리거하는 가장 좋은 방법
나는 이것을 확실하게 말할 수는 없지만, 이것을 할 수있는 쉬운 방법이 없다고 생각합니다. – cmonkey
나는 바운드 이벤트가 프로그래밍 방식으로 일종의 "명령 체인"패턴으로 덮여있는 요소에 대한 이벤트를 트리거하는 것을 보았습니다. 그러나 그 정말 어려운 문제입니다. – sakurashinken