Tôi chỉ cần nhấn này vấn đề trong Chrome 37.0.2062.124 m, phù hợp với vấn đề được mô tả trong câu hỏi của OP. Tuy nhiên, tôi không sử dụng bất kỳ thư viện đồ họa cụ thể nào, chỉ vẽ lên canvas. Và tôi đã vẽ lại bức tranh khi kích thước của DIV kèm theo thay đổi.
Tôi thấy rằng nếu chiều rộng hoặc chiều cao của canvas được đặt thành 0, nó sẽ không đáng tin cậy. Lần sau bạn đặt chiều rộng và chiều cao thành các giá trị khác 0, bất kỳ bản vẽ nào bạn thực hiện ngay lập tức sẽ bị bỏ qua, mặc dù chiều rộng và chiều cao của nó bây giờ không khác và nó có thể được nhìn thấy trong cây phần tử (và hover- được đánh dấu trong trang) trong trình gỡ lỗi của Chrome.
Vì vậy, ngoài những lời khuyên trong câu trả lời benni_mac_b của bạn phải:
- sử dụng
setTimeout
hoặc tương tự để trì hoãn vẽ trên vải, vì vậy bạn không làm điều đó ngay lập tức sau khi cài đặt chiều rộng/chiều cao, hoặc
- đảm bảo bạn không bao giờ đặt canvas thành độ rộng/chiều cao bằng không. Đảm bảo ít nhất là 1 pixel.
Tôi làm việc sau để đơn giản và giải quyết được sự cố.
Nói tóm lại:
Một vải vừa tăng từ (0, 0) đến (1000, 1000) không thể được vẽ trên ngay lập tức - nó bỏ qua tất cả các lệnh vẽ. Nhưng nếu nó vừa phát triển từ (1, 1) đến (1000, 1000) bạn có thể vẽ ngay trên tất cả.
Nguồn
2014-10-09 13:28:41
cảm ơn bạn, điều này đã khiến tôi phát điên. Tôi sẽ phải tìm ra cách để làm điều đó khi tôi đang tạo ra các biểu đồ động và không biết "g" thực sự là gì. – dogmatic69
Có hoạt động, cho bất kỳ ai khác đang xem xét thực hiện thao tác này, tôi đang sử dụng thuộc tính dữ liệu html5 và kết thúc bằng http://codepad.org/CmHHo0iG – dogmatic69