博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
H5 canvas的 width、height 与style中宽高的区别
阅读量:6867 次
发布时间:2019-06-26

本文共 1260 字,大约阅读时间需要 4 分钟。

Canvas 的width height属性

 

 

1、当使用width height属性时,显示正常不会被拉伸;如下

 

浏览器不支持Canvas,请升级或改用其它浏览器!

  

运行效果如下,为对角线

 

2、使用style时图像会被拉伸(变形),

 

  

运行效果

  

如何理解???可以这么理解————

Canvas 是一个画板和一张画纸,画板相当于一个容器,画图/作业是在画纸上进行的,

画板和画纸的默认宽高是300*150,当画纸与画板宽高相等时,图像不会被拉伸,当画纸与画板宽高不一样时,图像就会被拉伸(变形)。

1, width 和 height 属性是设定画板和画纸的宽高,

如: width=”300” height=”300” 即画板的宽高是300*300,画纸的宽高也是300*300,作业的300*300 的对角线图像就不会被拉伸

 

2, style样式 里设定的是仅画板的宽高,画纸的宽高还是为默认值300*150,

(以上图为例)因此所作业的300*300的对角线图像仅有一部分画在画纸上,如下:

  

Btw 画纸不会让画板就这么空出一片,于是画纸连同图像就要一起拉伸到跟画板大小一样。在此例子当中,画纸宽与画板宽都为30,而高为画板的一半,因此只需将高拉伸一倍即可,so 图像也一起被拉伸变瘦,X方向不变,Y方向增至一倍, 所以就得到了变形之后的图片

       

  

引用 的一段总结

关于HTML5中Canvas的宽、高设置问题Canvas元素默认宽 300px, 高 150px, 设置其宽高可以使用如下方法(不会被拉伸):方法一:       
方法二:使用HTML5 Canvas API操作 OK var canvas = document.getElementById('欲操作canvas的id'); canvas.width = 500; canvas.width = 500;若通过如下方法设置宽高,那么Canvas元素将由原来大小被拉伸到所设置的宽高:方法一:使用CSS 会被拉伸 #欲操作canvas的id{ width:1000px; height:1000px; }方法二:使用HTML5 Canvas API操作 会被拉伸 var canvas = document.getElementById('欲操作canvas的id'); canvas.style.width = "1000px"; canvas.style.height = "1000px";方法三 :用jquery的$("#id").width(500);会被拉伸 其它:canvas的width和height也不能用百分比表示。canvas会将百分值当成数值显示

  

转载于:https://www.cnblogs.com/regina1123/p/6234719.html

你可能感兴趣的文章
云计算
查看>>
mysql中的主从复制slave-skip-errors参数使用方法
查看>>
永久关闭wps热点新闻的办法
查看>>
飞信机器人安装
查看>>
修改一个字段中的部分内容
查看>>
kubernetes-1.11.0集群部署之master集群 (二)
查看>>
POJ_2001_Shortest Prefixes
查看>>
Webpack 的 HtmlWebpackPlugin 如何控制某个 chunks 的 inject 位置?
查看>>
Silverlight C# 游戏开发:未写代码先设计
查看>>
return false
查看>>
BZOJ3769:BST again(记忆化搜索DP)
查看>>
第二章:演化架构师
查看>>
20165315 第八周考试课下补做
查看>>
学习CAS实现SSO单点登录
查看>>
同步异步的知识补充
查看>>
css关于定位那些事情
查看>>
WCF IIS上部署服务
查看>>
微软职位内部推荐-Software Development Engineering II
查看>>
Senparc.Weixin.MP SDK 微信公众平台开发教程(五):使用Senparc.Weixin.MP SDK
查看>>
mariadb 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
查看>>