J'ai deux éléments SVG, chacun couvrant l'intégralité de l'écran.Passage d'événements de souris via l'arrière-plan SVG
html,
body {
height: 100%;
}
svg {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
<body>
<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%">
<rect x=0 y=0 width=50 height=50 fill='#ff0000' onclick="console.log(1)"></rect>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%">
<rect x=40 y=40 width=50 height=50 fill='#00ff00' onclick="console.log(2)"></rect>
</svg>
</body>
Même si les places ne se chevauchent pas, cliquez sur les événements ne seront jamais transmises à la place rouge, puisque le SVG avec le carré vert couvre l'écran et capture les événements de clic. Est-il possible d'avoir des événements de clic sur ces deux carrés, sans qu'ils soient dans le même SVG?
Une solution comme How can I pass ONLY clicks through a SVG with pointer-events? permet de passer des événements de clic jusqu'au carré rouge, mais uniquement si vous acceptez d'ignorer tous les événements sur le carré vert. Ajoutez simplement des événements pointeur none à la balise svg.
intéressant bidule – joopmicroop