對於我的網站,我希望用戶能夠點擊各種svg元素。使用document.elementFromPoint獲取附近路徑
我編寫了一個快速的函數,讓用戶點擊封閉的形狀。我基本上只是對他們運行document.elementFromPoint(x, y)
。這適用於任何封閉的形狀,因爲它們有可點擊的區域。然而,打開路徑很難點擊,因爲它們只有1-2像素大小。
我希望允許用戶通過點擊'足夠接近'來選擇它們,例如,如果點擊距離路徑10個或更少的像素,路徑將被選擇。我可以爲此編寫一個數學算法(使用光線投射,例如只能出10個像素,或將點轉化爲10px半徑的圓並檢查與路徑的交點),但我的直覺告訴我必須有更簡單的方法,也許通過CSS。
我一直在想的一個想法是,如果這條路徑的筆畫厚度爲10像素厚,但只有1個像素厚(但有一個「填充」可用於路徑而不是邊界框) 。我也看過pointer-events
,但除了邊界框(我不想使用它來避免選擇其他形狀),我沒有看到任何有用的設置。有沒有什麼我可以利用JavaScript或CSS,可以幫助我做到這一點,而不必爲自己的路徑做數學運算(因爲它可能會讓立方貝塞爾變醜)等等。
我還應該提到,這是一個HTML5應用程序,所以我不在乎向後兼容性。
工作得很好,我把兩個路徑放在一個'symbol'元素中,我通過'use'引用。這樣,兩條路徑都自動成爲相同形狀的一部分。 –