Mam mapę z elementami tekstowymi SVG, aby nazwać lokalizacje. Chcę, aby lokalizacje (kształty) były klikalne i są, ale ponieważ elementy tekstowe znajdują się na nich, jeśli ktoś unosi się nad elementem tekstowym i klika, to nic się nie dzieje, ponieważ kształt nie został kliknięty: element tekstowy był . Jak mogę to zrobić, aby po kliknięciu elementu tekstowego kliknięcie przechodziło "przez" i do kształtu?Jak uczynić element tekstowy SVG "zdolnym do kliknięcia"?
Odpowiedz
Mozilla wprowadziła właściwości CSS w tym celu o nazwie pointer-events. Pierwotnie był on ograniczony do kształtów SVG, ale teraz jest obsługiwana w większości elementów DOM w nowoczesnych przeglądarek:
span.label { pointer-events: none; }
Odpowiedź na to pytanie ma kilka dobrych informacji na uzyskując taki sam wynik w starym IE:
dodać css do tekstu:
pointer-events: none;
Jeśli istnieje możliwość pogrupowania kształtów mapy z tekstem wewnątrz elementu "<g>", można dołączyć kliknięcie do grupy, a nie do kształtu. Takie postępowanie daje dodatkową korzyść, że transformacje zastosowane w grupie będą miały zastosowanie zarówno do kształtu, jak i tekstu. Jeśli grupowanie nie jest możliwe, to zgadzam się, że poprzednia odpowiedź jest zdecydowanie najlepsza. Zasadniczo to, co się dzieje, jest następujące: większość ludzi wizualizuje kliknięcie przenikające w dół przez twój indeks Z, ale nie działa w ten sposób. Kliknięcie przechodzi przez DOM, więc jeśli tekst nie obsługuje kliknięcia, pęcznieje do następnego elementu DOM, który jest grupą nadrzędną lub kontenerem. Trwa to w górę, dopóki nie osiągnie najwyższego elementu DOM.
- 1. Wstaw kod HTML wewnątrz SVG Element tekstowy
- 2. jQuery do „kliknięcia” element LI
- 3. Dodaj element SVG do istniejącego SVG używając DOM
- 4. Jak uczynić element przeciągalny w jQuery?
- 5. Jak odwołać zmiennej w xsl: element tekstowy?
- 6. Podczas długiego kliknięcia usuń element
- 7. Jak uczynić Haskell lub ghci zdolnym do wyświetlania chińskich znaków i uruchamiania chińskich znaków o nazwie skrypty?
- 8. IE11 meta element Breaks SVG
- 9. Jak przenieść element SVG z ramą bobrilu
- 10. Jak dodać element SVG przy starcie - Kątowe
- 11. Element grupy środkowej wewnątrz svg
- 12. XML parsowania problem z '&' w element tekstowy
- 13. dodawanie tekstu do dokumentu SVG w javascript
- 14. Stwórz element niemożliwy do kliknięcia (kliknij za nim)
- 15. Element wyzwalający zdarzenia kliknięcia nie działa jonowego
- 16. Slickgrid, jak zdobyć element siatki na zdarzeniu kliknięcia?
- 17. Uzyskuj współrzędne kliknięcia myszą na svg przy użyciu d3
- 18. Wypełnij element ścieżki SVG obrazem tła
- 19. SVG <image> element renderujący jakość
- 20. Safari kompatybilny CSS3 animacji na element SVG
- 21. Jak sprawdzić element CheckListBox za pomocą jednego kliknięcia?
- 22. Jak uczynić link do uruchomienia bootstrap nieaktywnym
- 23. Jak uczynić wszystkie odziedziczone metody obiektami podklasy?
- 24. Android uiautomator do kliknięcia ListView
- 25. Odcięcie SVG
- 26. Czy możemy uczynić element (div) przezroczystym dla zdarzeń myszy?
- 27. Jak mogę uczynić określoną TabItem skupić się na TabControl bez kliknięcia?
- 28. Zamień jeden element tekstowy części w pętlę for Python
- 29. Jak śledzić kliknięcia przycisków Tweetowania?
- 30. Polimer - Przekaż element powtarzany przez dom w ramach funkcji kliknięcia.
COOL, nie wiedziałem, że działało z SVG, tylko "regularne" elementy – Cystack
@Cystack "właściwość pointer-events" była częścią SVG od samego początku (i nie, nie została ona wprowadzona przez Mozillę - chociaż Mozilla była pionierem wykorzystania tej właściwości poza svg). Jako pierwszy link jest napisane "Ostrzeżenie: użycie wskaźników-zdarzeń w CSS dla elementów innych niż SVG jest eksperymentalne". –
Ponadto, wskaźniki-zdarzenia działają w treści SVG w IE9 + AFAIK. –