如何在HTML5 canvas元素中包含SVG圖像,以便在更改瀏覽器窗口的大小時調整SVG的大小?HTML5 canvas元素中的SVG
0
A
回答
4
這需要相當一些樣板代碼來演示,所以我只是要指出你在正確的方向。
假設您有權訪問名爲myCanvas
的畫布對象/元素。當您執行var ctx = myCanvas.getContext('2d')
時,則ctx
是CanvasRenderingContext2D
的實例。現在,當你畫你的形象img
你執行ctx.drawImage(img, dx, dy, sw, sh)
其中:
dx
和dy
是從左上角的偏移量。sw
和sh
是圖像的絕對大小。
因此,您調整圖像大小sw
和sh
。您希望它們取決於您可以通過myCanvas.height
和myCanvas.width
訪問的畫布大小。
您希望畫布寬度/高度取決於窗口大小。窗口大小可通過window.innerWidth
和window.innerHeight
訪問。當你調整大小時,你可以聽到這樣的事件:window.addEventListener('resize', function (evt) { /* handle resize here */ });
。示例:
var updateCanvasSize, canvasRelativeSize;
canvasRelativeSize = .5;
updateCanvasSize = function (evt) {
myCanvas.width = canvasRelativeSize * window.innerWidth;
myCanvas.height = canvasRelativeSize * window.innerHeight;
draw(); // redraws the canvas since size has changed
};
相關問題
- 1. html5 canvas元素和svg
- 2. HTML5 clicable canvas元素?
- 3. html5 canvas元素消失
- 4. 向canvas添加元素html5
- 5. 隱藏HTML5 Canvas元素
- 6. 獲取HTML5 canvas元素
- 7. HTML5圖形SVG,canvas和CSS
- 8. 如何在HTML5中操作canvas元素?
- 9. 在svg-canvas中定位轉換後的SVG元素
- 10. HTML5 canvas元素上的滾動驗證
- 11. 可下載圖形 - SVG vs Canvas元素?
- 12. 如何獲取HTML5 SVG元素中所有元素的位置
- 13. html5 - canvas元素 - 多個圖層
- 14. 用於HTML5瀏覽器的SVG或Canvas?
- 15. HTML5 canvas元素的元素點映射,需要算法
- 16. 可以從Canvas構造函數創建HTML5 Canvas元素
- 17. 對於大量行,HTML5 SVG vs Canvas?
- 18. SVG和HTML5 Canvas有什麼區別?
- 19. Html5拖放在svg元素上
- 20. 把iframe放在HTML5中的canvas元素中
- 21. 如何在canvas元素中讀取SVG的viewbox屬性?
- 22. 我的頁面背景中的html5 canvas元素?
- 23. 在canvas元素中創建多個可拖拽的矩形html5
- 24. 在html5/javascript canvas中向上移動的動畫元素
- 25. html5硬件中的canvas元素加速了嗎?
- 26. android中的html5 canvas
- 27. 鎖元素的SVG元素
- 28. 如何在IE中使用HTML5 canvas元素?
- 29. 如何在HTML5 Canvas元素中使用自定義字體?
- 30. 如何在HTML5 Canvas中使用多個顏色元素?
*「[...],以便在更改瀏覽器窗口的大小時調整SVG的大小」*:您知道畫布不會**調整大小自動與窗口? –
是的。那麼這是不可能的? – shub
我還沒有使用過SVG。我只是這麼說的,即使可以將SVG圖像添加到畫布上,這個單獨的操作也不能解決調整大小的問題。調整畫布大小「是由JavaScript完成的。也許你可以使用相同的技術來調整SVG圖像的大小。 –