請幫忙。 我有一個像下圖這樣的圖像顯示在主頁上(一個更大的圖像)。 請注意,「FORGE」房屋的中間有一個白色和藍色標記,並帶有黑色箭頭。
「出租」房屋也是如此。
這些標記中的每一個都將充當互動式按鈕。以下是預期的互動行為:
也希望它能夠響應,如果當螢幕調整大小時,按鈕應保留在這些特定位置。
我正在嘗試使用絕對定位、x、y 座標來嘗試使其工作。但由於我喜歡這類使用者介面的經驗,無法找到可行的解決方案。不確定我是否應該使用畫布或其他方法。
任何幫助將不勝感激。
我的程式碼看起來像這樣,但看起來我沒有走在正確的軌道上:
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 ( <div style={{ position: 'relative' }}> <img src="path/to/image.jpg" alt="Image with markers" /> {markers.map((marker, index) => ( <div key={index} className="marker" style={{ left: marker.x, top: marker.y, position: "absolute" }} onClick={() => handleMarkerClick(marker)} /> ))} </div> ); };
您應該將控制項放置在映像容器的絕對位置。 實現取決於多種因素,例如影像放置的位置、是否全螢幕顯示、影像之前或之後是否有內容等。 但這段程式碼應該要向您展示主要原理。
如果在調整視窗大小時調整影像大小,則應該建立一個與影像完全相同的容器。然後,您可以設定控制項相對於該容器的位置,並使它們固定在各自的點上。
使用你的程式碼,它會是這樣的(但我建議在樣式檔案中移動你的樣式,學習如何在react中使用模組樣式):
只需修復位置並新增正常的控制視圖即可。
為了進行控制,您應該製作單獨的元件。以下是如何實現您想要的行為的範例: