Tôi muốn đổi kích thước phần tử canvas sao cho phù hợp với bố cục của nó, cho dù đó là <body>
("toàn màn hình") hoặc một số <div>
chẳng hạn. Đây là nỗ lực của tôi:HTML5 canvas thay đổi kích thước thành parent
// called at each frame
function update() {
var canvasNode = document.getElementById('mycanvas');
canvasNode.width = canvasNode.parentNode.clientWidth;
canvasNode.height = canvasNode.parentNode.clientHeight;
}
Vì lý do nào đó, canvas không ngừng phát triển! Có lẽ client*
không phải là thông số phù hợp?
Xem mã trong hành động ở đây: http://jsfiddle.net/ARKVD/24/
Nếu canvas có chiều cao '155px', thân cao hơn 160px, khiến cho khung hình tiếp tục phát triển '5px' mỗi lần (phần thân có vẻ là' 5px' phía trước mỗi khi canvas mọc). Tôi không có ý tưởng tại sao, vì bạn đã thiết lập tất cả các lề/paddings trên '0px'. (Đây là trên Chrome.) – pimvdb
Cảm ơn, trên Linux/Firefox, tôi thấy có chênh lệch 4px hoặc 3px (tùy thuộc vào việc cửa sổ của tôi có được phóng to hay không) ... gây phiền nhiễu! –
Điều lạ lùng là, nếu canvas được đặt ở độ cao '0px', phần thân là cao 20px. Cơ thể chỉ sụp đổ thành '0px' nếu canvas thực sự bị xóa. – pimvdb