首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将HTML5画布缩放到包装它的容器的大小?

如何将HTML5画布缩放到包装它的容器的大小?
EN

Stack Overflow用户
提问于 2012-10-03 20:41:34
回答 1查看 4.9K关注 0票数 3

目前我有一个固定大小的HTML5画布,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="container">
<canvas id="example" width="350" height="250"></canvas>
</div>

然而,我希望能够缩放画布,使其与周围的容器大小相同,显然它仍然必须保持相同的纵横比。我还希望它是流体的,这样如果用户调整浏览器的大小,那么画布就会随着流体容器的缩放而缩放。

因此,例如,如果我的容器宽度设置为500px,那么画布的宽度将缩放到相同的大小。例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="container" style="width:500px;">
<canvas id="example"></canvas>
</div>

例如,画布的宽度将为500px以匹配容器,高度将自动设置为357px,保持相同的纵横比。

我相信这可以用一些javascript来实现,我只是不知道怎么做……我希望我已经为别人提供了足够的信息来帮助我。如果有人能提出一个jsfiddle,并提供一些示例代码,如果可能的话,我将不胜感激。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-03 20:56:19

下面是一个保持纵横比的基本实现:http://jsfiddle.net/wtVX2/1/

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function resizeCanvas(){
    var con = document.getElementById("container"),
        canvas = document.getElementById("canvas"),
        aspect = canvas.height/canvas.width,    
        width = con.offsetWidth,
        height = con.offsetHeight;

    canvas.width = width;
    canvas.height = Math.round(width * aspect);
}

注意,它只在水平方向上是流动的。

jQuery将为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function resizeCanvas(){
    var con = $("#container"),
        canvas = $("#canvas")[0],
        aspect = canvas.height/canvas.width,
        width = con.width(),
        height = con.height();

    canvas.width = width;
    canvas.height = Math.round(width * aspect);
}

请注意,我仍然以相同的方式设置画布的宽度和高度。如果我们使用CSS设置宽度/高度,它将拉伸/挤压像素的绘图,您将得到模糊的绘图。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12716565

复制
相关文章
html5 canvas画布
<!DOCTYPE html> <html> <head>     <meta charset="UTF-8">     <title></title> </head> <body>     <canvas id="myCanvas" width="80px" height="80px" style="border: 1px solid #000000"></canvas>     <canvas id="myCanvas2"></canvas>     <canvas id="myCanvas3"></c
用户7718188
2021/11/01
9050
html5 canvas画布
本文由用户 AnnettaMcca 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
用户7705674
2021/09/22
1K0
list容器的大小操作
大小操作 #include<iostream> using namespace std; #include<list> //防止数据修改,只做读取操作 void print(const list<in
大忽悠爱学习
2021/03/02
2880
list容器的大小操作
map容器的大小和交换
函数原型: #include<iostream> using namespace std; #include<map> void print(map<int, int>& m1) { for (
大忽悠爱学习
2021/03/02
4540
map容器的大小和交换
set容器的大小和交换
大小和交换 函数原型: #include<iostream> using namespace std; #include<set> void p(set<int>& s) { for (set<
大忽悠爱学习
2021/03/02
3940
set容器的大小和交换
HTML5画布-小球碰撞
       html5是万维网的核心语言、标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次重大修改。
阿珏
2018/08/08
1.7K0
Power BI着色地图自适应画布大小
针对第二个缺陷,例如切片器选择青海,Synoptic Panel其实仍然显示的是全国,只是青海有数据。
wujunmin
2021/12/27
1.9K0
Power BI着色地图自适应画布大小
如何将python列表拆分为大小相等的块
程序熵
2023/09/25
3260
如何将python列表拆分为大小相等的块
flutter的画布认识
下图代码详见: p03_canvas/06_like_circle/paper.dart#_drawArcDetail
用户1974410
2022/09/20
3.2K0
flutter的画布认识
html5 td中的5它空隙--待解决
这是html5的bug吗? td中的图片下有5px空隙,文字没有。 <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-
deepcc
2018/05/16
1.1K0
「Adobe国际认证」Adobe Photoshop调整裁剪、旋转和画布大小
可以在扫描仪中放入若干照片并一次性扫描它们,这将创建一个图像文件。“裁剪并修齐照片”命令是一项自动化功能,可以通过多图像扫描创建单独的图像文件。
IT胶囊
2021/06/16
2.5K0
我的精益画布
商家推广是互联网重点关注的方向之一,现在也有很多产品、解决方案存在。但对于小商家来说,要不流程复杂、要不成本、门槛较高,这些产品都没有照顾到小商家身上,小商家依然使用低效的推广方法。
Jeffery
2019/07/30
1.5K0
我的精益画布
熬夜总结了 “HTML5画布” 的知识点(共10条)
(xStart,yStart)是线段的起点,(xEnd,yEnd)是线段终点。起点到终点之间的颜色呈渐变。
小灰
2020/08/02
7.1K0
如何将wordpress的the_title()进行大小写处理
  有时我们在做wordpress网站时需要将标题的大写字母改成小写字母或小写字母转为大写字母方便调用,那么要如何改造呢?我们知道Wordpress the_title()函数默认回显标题,标准写法是
ytkah
2019/10/11
1.2K0
Canvas 基本绘制(上)
HTML5学堂:之前的文章与大家分享了SVG的一系列操作,但是SVG也是存在一些劣势,所以今天开始为大家分享介绍HTML5 Canvas的相关知识,Canvas是什么呢?又如何进行Canvas进行图像
HTML5学堂
2018/03/12
1.5K0
Canvas 基本绘制(上)
【新版教程】如何将公安机关备案号放到我们的网站底部
网站通过了公安局备案后需要将“网站公安机关备案编号及图标”放到网站底部,本教程将详细指导如何操作。
夏末浅笑
2020/05/09
12.3K0
【新版教程】如何将公安机关备案号放到我们的网站底部
我们如何将 Pinterest 的 iOS 应用大小减少 30% 以上
众所周知,应用程序的大小(下载大小 [1] [2])是非常重要的,并且在应用程序的大小和客户参与度之间存在关联。通常,人们会根据大小来决定是否使用软件,甚至以兆字节来支付带宽。更不用说,随着应用程序大小的增加,卸载率也会上升,这会导致用户试图释放设备上的磁盘空间。
深度学习与Python
2021/06/08
8190
我们如何将 Pinterest 的 iOS 应用大小减少 30% 以上
熬夜总结了 “HTML5画布” 的知识点(共10条)
html5Canvas的知识点,是程序员开发者必备技能,在实际工作中也常常会涉及到。
达达前端
2022/04/13
7.6K0
熬夜总结了 “HTML5画布” 的知识点(共10条)
原生小案例:如何使用HTML5 Canvas构建画板应用程序
HTML canvas标签是一个HTML元素,它提供了一个空白的绘图表面,可以使用JavaScript来渲染图形、形状和图像。绘图应用程序利用HTML5 canvas的功能,使用户能够以数字方式创建艺术作品、草图和插图。此外,使用HTML5 canvas构建的绘图应用程序允许用户与画布进行交互,捕捉鼠标移动和点击事件,实时绘制、擦除或操作元素。
前端达人
2023/08/31
5530
原生小案例:如何使用HTML5 Canvas构建画板应用程序
Kubernetes运维之容器编排Deployment动态扩缩容
HPA(Horizontal Pod Autoscaler)的实现是一个控制循环,由controller manager的–horizontal-pod-autoscaler-sync-period参数指定周期(默认值为15秒)。每个周期内,controller manager根据每个HorizontalPodAutoscaler定义中指定的指标查询资源利用率。controller manager可以从resource metrics API(pod 资源指标)和custom metrics API(自定义指标)获取指标。
王先森sec
2023/04/24
1.2K0
Kubernetes运维之容器编排Deployment动态扩缩容

相似问题

拖放到画布HTML5上

20

在保持行缩的同时,将列表子弹放到容器的边框上?

11

如何将2D网格缩放到画布的大小?

11

HTML5从DIV拖放到画布

110

CSS:如何将容器缩放到动态调整大小的子容器的宽度?

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文