Tôi nghĩ có thể bạn hiểu nhầm Canvas là gì.
Canvas thực chất là mạng lưới pixel 2 chiều dọc theo trục 'X' và trục 'Y'. Bạn sử dụng API để vẽ các pixel trên canvas đó, vì vậy khi bạn vẽ một hình ảnh, bạn sẽ vẽ các pixel tạo nên hình ảnh đó lên khung hình của bạn. Lý do KHÔNG có phương pháp cho phép bạn chỉ cần xóa một hình ảnh, là vì Canvas không biết có một hình ảnh ở đó đầu tiên, nó chỉ nhìn thấy các pixel. Điều này không giống như DOM HTML (Mô hình đối tượng tài liệu), nơi mọi thứ đều là một phần tử HTML, hoặc một 'điều' thực tế mà bạn có thể tương tác với, các sự kiện kịch bản hook-up, v.v. vẽ lên Canvas. Khi vẽ một 'vật' lên Canvas, thứ đó không trở thành thứ bạn có thể nhắm vào hoặc móc vào, nó chỉ là điểm ảnh. Để có được một 'điều', bạn cần đại diện cho 'thứ' của bạn theo một cách nào đó như đối tượng JavaScript, và duy trì một bộ sưu tập các đối tượng JS này ở đâu đó. Cách thức hoạt động của trò chơi Canvas. Việc thiếu cấu trúc giống như DOM cho Canvas giúp hiển thị rất nhanh, nhưng có thể là một nỗi đau khi triển khai các phần tử giao diện người dùng mà bạn có thể dễ dàng kết nối và tương tác, xóa, v.v. Bạn có thể thử dùng SVG.
Để trả lời câu hỏi của bạn, chỉ cần vẽ một hình chữ nhật lên Canvas bao gồm hình ảnh của bạn bằng cách sử dụng cùng một dây đồng X/Y và kích thước bạn đã sử dụng cho hình ảnh gốc hoặc thử giải pháp của Pointy. 'Che đậy' có lẽ là thuật ngữ sai, vì bạn thực sự thay thế các pixel (không có lớp nào trong Canvas).
Nguồn
2010-08-11 14:57:49
Bạn muốn gì trên canvas khi nó biến mất? – Pointy
img1 + số khác thay vì img2 –
Sử dụng [fabric.js] (http://kangax.github.com/fabric.js/demos/kitchensink), việc xóa hình ảnh thứ hai sẽ đơn giản như 'canvas.remove (img2) ':) – kangax