javascript - 从上下文中获取 Canvas 大小

标签 javascript canvas

我正在用 javascript 构建一些用于 Canvas 绘图的库,我想知道是否有任何方法可以从 2D 上下文中获取 Canvas 的大小。我正在寻找类似的东西。

var size=ctx.size;
scale=size/100;

这里有多个canvas元素,所以我不能做canvas.width。
谢谢

最佳答案

是的,你可以。它比您习惯的要深一点;

var sizeWidth = ctx.canvas.clientWidth;
var sizeHeight = ctx.canvas.clientHeight;

var scaleWidth = sizeWidth/100;
var scaleHeight = sizeHeight/100;

Canvas 上下文对象的常见示例;

> CanvasRenderingContext2D
    canvas: HTMLCanvasElement
    constructor: CanvasRenderingContext2DConstructor
    fillStyle: "#000000"
    font: "10px sans-serif"
    globalAlpha: 1
    globalCompositeOperation: "source-over"
    lineCap: "butt"
    lineJoin: "miter"
    lineWidth: 1
    miterLimit: 10
    shadowBlur: 0
    shadowColor: "rgba(0, 0, 0, 0)"
    shadowOffsetX: 0
    shadowOffsetY: 0
    strokeStyle: "#000000"
    textAlign: "start"
    textBaseline: "alphabetic"
    webkitBackingStorePixelRatio: 1
    webkitLineDash: Array[0]
    webkitLineDashOffset: 0
    __proto__: CanvasRenderingContext2DPrototype

以及其中的 HTMLCanvasElement;

> canvas: HTMLCanvasElement
    accessKey: ""
    attributes: NamedNodeMap
    baseURI: "http://fiddle.jshell.net/_display/"
    childElementCount: 0
    childNodes: NodeList[0]
    children: HTMLCollection[0]
    classList: DOMTokenList
    className: ""
    clientHeight: 150
    clientLeft: 1
    clientTop: 1
    clientWidth: 300
    constructor: HTMLCanvasElementConstructor
    contentEditable: "inherit"
    dataset: DOMStringMap
    dir: ""
    draggable: false
    firstChild: null
    firstElementChild: null
    height: 150
    hidden: false
    id: "c1"
    innerHTML: ""
    innerText: ""
    isContentEditable: false
    lang: ""
    lastChild: null
    lastElementChild: null
    localName: "canvas"
    namespaceURI: "http://www.w3.org/1999/xhtml"
    nextElementSibling: HTMLCanvasElement
    nextSibling: Text
    nodeName: "CANVAS"
    nodeType: 1
    nodeValue: null
    offsetHeight: 152
    offsetLeft: 8
    offsetParent: HTMLBodyElement
    offsetTop: 8
    offsetWidth: 302
    onabort: null
    onbeforecopy: null
    onbeforecut: null
    onbeforepaste: null
    onblur: null
    onchange: null
    onclick: null
    oncontextmenu: null
    oncopy: null
    oncut: null
    ondblclick: null
    ondrag: null
    ondragend: null
    ondragenter: null
    ondragleave: null
    ondragover: null
    ondragstart: null
    ondrop: null
    onerror: null
    onfocus: null
    oninput: null
    oninvalid: null
    onkeydown: null
    onkeypress: null
    onkeyup: null
    onload: null
    onmousedown: null
    onmousemove: null
    onmouseout: null
    onmouseover: null
    onmouseup: null
    onmousewheel: null
    onpaste: null
    onreset: null
    onscroll: null
    onsearch: null
    onselect: null
    onselectstart: null
    onsubmit: null
    onwebkitfullscreenchange: null
    onwebkitfullscreenerror: null
    outerHTML: "<canvas id="c1"></canvas>"
    outerText: ""
    ownerDocument: HTMLDocument
    parentElement: HTMLBodyElement
    parentNode: HTMLBodyElement
    prefix: null
    previousElementSibling: null
    previousSibling: Text
    scrollHeight: 150
    scrollLeft: 0
    scrollTop: 0
    scrollWidth: 300
    spellcheck: true
    style: CSSStyleDeclaration
    tabIndex: -1
    tagName: "CANVAS"
    textContent: ""
    title: ""
    translate: true
    webkitRegionOverflow: "undefined"
    webkitdropzone: ""
    width: 300
    __proto__: HTMLCanvasElementPrototype

关于javascript - 从上下文中获取 Canvas 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16531327/

相关文章:

javascript - 使用ajax加载js内容时出现问题

javascript - 根据另一个数组的值对 JS 数组进行排序的最快方法?

javascript - 使用jquery找不到被点击元素的父元素的id

javascript - 用鼠标在 JavaScript 中绘制一个矩形

javascript - undefined variable $http 请求

javascript - 使用 XMLHttpRequest (vanillaJS) 将数据发送到 PHP 并使用 $_POST 在 php 中读取数据?不明确的

javascript - 检测 HTML canvas 元素的 mouseMove out 事件

javascript - 根据变量绘制 Canvas 线

javascript - 如何从 HTML 中的 MJPEG 流制作快照

Javascript - 为 Canvas 创建图像对象数组?