S'il vous plaît, aidez-moi. J'ai une image comme celle ci-dessous qui s'affiche sur la page d'accueil (une image plus grande). A noter que la maison "FORGE" possède unmarqueur blanc et bleuau milieu avec uneflèche noire.
Il en va de même pour les logements « locatifs ».
Chacun de ces marqueurs agira comme un bouton interactif. Voici le comportement d'interaction attendu :
Je veux également qu'il soit réactif, si et quand l'écran est redimensionné, les boutons doivent rester dans ces positions spécifiques.
J'essaie d'utiliser le positionnement absolu, les coordonnées x, y pour essayer de le faire fonctionner. Mais comme j’apprécie l’expérience de ce type d’interface utilisateur, je ne trouve pas de solution efficace. Je ne sais pas si je dois utiliser de la toile ou autre chose.
Toute aide serait grandement appréciée.
Mon code ressemble à ceci, mais il semble que je ne suis pas sur la bonne voie :
const ImageComponent = () => { const markers = [ { name: 'Forge', x: 100, y: 200 }, { name: 'Rentals', x: 300, y: 150 }, // Add more ]; const handleMarkerClick = (m) => { // do something with marker }; return ({markers.map((marker, index) => (
handleMarkerClick(marker)} /> ))}); };
Vous devez placer le contrôle à la position absolue du conteneur d'image. La mise en œuvre dépend de divers facteurs, tels que l'endroit où l'image est placée, si elle est en plein écran, s'il y a du contenu avant ou après l'image, etc. Mais ce code devrait vous montrer le principe principal.
Si l'image est redimensionnée lorsque la fenêtre est redimensionnée, vous devez créer un conteneur identique à l'image. Vous pouvez ensuite définir la position des contrôles par rapport à ce conteneur et les ancrer à leurs points respectifs.
Utilisez votre code et il ressemblera à ceci (mais je vous recommande de déplacer vos styles dans le fichier de styles pour apprendrecomment utiliser les styles de module dans React) :