我看到this問題,我不知道我可以如何設置每個圈子的ID並從JavaScript代碼和CSS代碼訪問它們? (例如點擊)如何爲繪製的畫布形狀設置ID?
1
A
回答
6
您可以通過在繪製圓圈時定義點擊對象來解決此問題。
...
// push circle info as objects:
circles.push({
id: i + "," + j, // some ID
x: x,
y: y,
radius: radius
});
...
然後:循環繪製圈(REF由@MonicaOlejniczak製造小提琴)內
- 通過對象添加一個單擊處理程序,以帆布
- 正確的鼠標位置
- 環發現如果(x,y)在圓圈內:
功能離子例如:
canvas.onclick = function(e) {
// correct mouse coordinates:
var rect = canvas.getBoundingClientRect(), // make x/y relative to canvas
x = e.clientX - rect.left,
y = e.clientY - rect.top,
i = 0, circle;
// check which circle:
while(circle = circles[i++]) {
context.beginPath(); // we build a path to check with, but not to draw
context.arc(circle.x, circle.y, circle.radius, 0, 2*Math.PI);
if (context.isPointInPath(x, y)) {
alert("Clicked circle: " + circle.id);
break;
}
}
};
您可以選擇使用的數學,而不是isPointInPath()
,但後者更簡單,就是爲了這個目的不夠快。
0
您不能在繪製到畫布的東西上設置標識。
該元素本身只是一個位圖,並不提供任何繪製對象的信息。
如果您需要與您需要手動保持對這裏的一切繪製的引用,或使用如「對象挑選」或者使用內置的hit regions系統畫布裏面的物品進行互動。
相關問題
- 1. HTML5畫布繪製地形設置
- 2. 如何爲畫布形狀設置圓形內部陰影?
- 3. HTML畫布 - 間隔後繪製形狀
- 4. 在畫布上繪製漸變形狀
- 5. 在畫布上繪製透明形狀
- 6. 如何使用畫布以梯形形狀繪製圖像
- 7. 設置在另一個形狀上繪製的形狀爲Invisible
- 8. 使用fabric.js繪製畫布形狀作爲橢圓形lauout
- 9. 如何調整在畫布上繪製的形狀的大小
- 10. html5 - 如何檢查在畫布上繪製的形狀?
- 11. 如何繪製畫布形狀之間的對角線
- 12. HTML5畫布地形設置繪圖
- 13. 如何在HTML5畫布上交互繪製形狀?
- 14. 如何在HTML5畫布中繪製雲形狀?
- 15. 如何使用HTML畫布繪製任意形狀?
- 16. 設置畫布形狀大小的畫布
- 17. WPF畫布圖形繪製
- 18. 繪製矩形畫布android
- 19. 繪製畫布3d矩形
- 20. Android畫布繪製矩形
- 21. 繪製矩形形狀阻力和圖像的降HTML5畫布
- 22. 在safari中重新繪製時畫布形狀變爲別名
- 23. 畫布上的繪圖形狀
- 24. 如何在畫布上繪製畫布
- 25. 將使用畫布繪製的矩形的填充設置爲RGB值
- 26. 如何繪製形狀
- 27. 調整在cnvas上繪製形狀的html5畫布的大小
- 28. Android的畫布上繪製由多個簡單的形狀
- 29. 如何使用畫布設置繪製線的延遲
- 30. 如何繪製不使用畫布的圓形動畫?
如何在第一次點擊時將文本設置爲任何圓圈? – Ghost 2015-03-03 18:15:51