Có thể tạo hình nền của DIV thành canvas có thể được sửa đổi bằng getContext ("2d") không?HTML5 Canvas làm hình nền CSS?
Trả lời
Bạn có thể có canvas bên trong div với vị trí tuyệt đối css, các yếu tố khác phải có chỉ mục z lớn hơn canvas.
Vâng, bạn có thể đặt phần tử canvas bên trong div, tối đa hóa chiều cao và chiều rộng, đặt vị trí của nó thành tương đối và chỉ mục z của nó thành giá trị âm.
Tuy nhiên, nếu bạn muốn sử dụng CSS thực background-image:...
bạn sẽ phải tạo hình ảnh của mình bên trong canvas. Sau đó bạn có thể sử dụng toDataURL
để có được một url dữ liệu mà bạn có thể sử dụng như giá trị so với ban đầu background-image
của bạn:
var canvas = document.getElementById('canvas');
var data = canvas.toDataURL();
var myElement = document.getElementById('myelement');
myElement.style.backgroundImage = 'url('+data+')';
Nếu bạn không muốn tạo ra một mới nền nhưng thao tác hiện có, tải ban đầu của bạn nền thành một đối tượng hình ảnh (hoặc có được một tài liệu tham khảo) và sử dụng drawImage
:
var image = new Image();
image.onload = function(){
context.drawImage(this,0,0);
someCallbackToManipulateTheImage();
}
var src = myElement.style.backgroundImage.substr(4);
src.substr(0,src.length - 1);
image.src = src;
Đặt background-image của div này:
"url('" + canvas.toDataURL() + "')";
Chỉnh sửa: Tại thời điểm đó, lưu ý rằng bạn cũng được tự do làm những gì bạn muốn với canvas, vì hình nền sẽ tiếp tục chỉ chứa dữ liệu hình ảnh trong canvas tại thời điểm bạn gọi là canvas. toDataURL(). Hãy bỏ hoặc vẽ lên canvas, vì nó sẽ không ảnh hưởng đến nền tảng div của bạn tại thời điểm đó.
Giả sử công trình này như mong đợi, cả câu trả lời này và câu trả lời được chọn đều chính xác 100%. Đây là một nhiệm vụ của thuộc tính background-image trong CSS, thuộc tính khác dựa trên chỉ mục z. –
Tôi nghĩ điều này là phù hợp hơn với những gì OP đang tìm kiếm, để thay thế đại diện của canvas được vẽ động bằng một hình ảnh tĩnh, tại đây được mã hóa trong URL. –
- 1. Hình nền HTML5 canvas lặp lại
- 2. HTML5 tạo ảnh nền canvas
- 3. cuộn/trượt nền trong html5 canvas
- 4. html5 canvas strokeStyle?
- 5. Hình nền canvas wpf động
- 6. HTML5 Canvas - Làm thế nào để vẽ một đường trên nền hình ảnh?
- 7. Lưu Canvas với Hình nền
- 8. Hình nền vẽ canvas Android
- 9. Phần tử canvas html5 trong nền của trang của tôi?
- 10. Tách trong canvas HTML5?
- 11. "Xóa" trong html5 canvas
- 12. Tạo hình PDF trong HTML5 Canvas
- 13. HTML5 xoay hình ảnh bằng canvas
- 14. HTML5 Canvas biểu đồ hình tròn
- 15. Cách tải hình ảnh lên canvas HTML5
- 16. Sử dụng hình ảnh html5 canvas làm mặt nạ
- 17. Grabbing mỗi khung hình của một canvas HTML5
- 18. HTML5 Canvas eraser
- 19. HTML5 cách vẽ hình ảnh pixel trong suốt trong canvas
- 20. Html5 Canvas Limitations
- 21. Canvas - Thay đổi màu của hình ảnh bằng HTML5/CSS/JS?
- 22. Thực hiện di chuyển hình ảnh trên trang web thông qua CSS vs HTML5 Canvas
- 23. CSS: hình nền trên màu nền
- 24. chờ animation với HTML5 Canvas
- 25. html5 canvas hand cursor issues
- 26. CSS: Hình nền và đệm
- 27. Overlay HTML5 canvas over image
- 28. Hình nền CSS kéo dài
- 29. HTML5 canvas nhấp chuột kiện
- 30. Hình tam giác CSS có hình nền
Hm, thú vị. Ai đó không thích câu trả lời này. – Zeta
Đẹp được thực hiện – TaterJuice
Có cách nào để sử dụng canvas làm hình nền backgroud của DIV mà không chèn nhiều canvas hoặc tạo nhiều url dữ liệu giống như --webkit-canvas không? Nó sẽ tiết kiệm bộ nhớ nếu có thể .. Nếu nó có thể chỉ định URL canvas trong tệp css, nó sẽ đơn giản hóa nhiều chương trình vì nó không cần chèn canvas cho mỗi DIV với cùng một nền. – sean