這裏是我會怎麼做 - 簡單的,短的路,我不知道如何你想擴展它:
我會創建一個數組,並將事件監聽器綁定到您希望用戶單擊的div上。
每次用戶點擊該圖像時,都會傳遞一個事件對象,根據您的佈局,可以讀出鼠標的X和Y座標 - .position()或.offset()。 創建一個JSON對象,它存儲這些值:
var hit = {
id: 1,
x: 250,
y: 365,
//add more attributes if you like/need
//for this particular 'hit'
}
而且你可以在一個陣列這個對象(-notation)存儲:
hitz.push(hit);
現在你應該「更新」你的用戶界面基於這個數組。 只是遍歷一個for ... in循環,並創建您的圖像:
var hockeyIceClone= $("div.hockey-ice").clone(true);
for (var i in hitz) {
var hit = hitz[i];
hockeyIceClone.append(
//assuming that your .hockey-ice div has position:relative at least
var image = $(new Image('image/path.png'));
//add more stuff for image if you like
$(image).css({
position: absolute,
left: hit.x,
top: hit.y
})
);
}
$("div.hockey-ice").replaceWith(hockeyIceClone);
原因克隆是因爲當您遍歷數組,並添加元素的「容器」放在了和上可見用戶界面,它可能會閃爍,因爲它呈現。所以你最好先「收集」它,然後把它們一起放到UI上。 你也可以使用克隆以外的其他方法,它只是一個選項。
您是否有個人偏好進行canvas或DOM操作?無論哪種方式都應該很容易,這是您的選擇。選擇一個,我很樂意提供一些示例代碼... – JKing
沒有經驗的畫布,通過jQuery的DOM是我有經驗的地方。 –
克隆圖像元素並將其附加到DOM不起作用嗎?然後,你只需要獲得鼠標座標,並設置克隆節點的位置。你遇到什麼困難,克隆或定位? – JKing