关于canvas宽度和高度问题

关于canvas宽度和高度问题

视频里既然给canvas设置了宽和高,即
canvas.width = width;
canvas.height = height;
是不是没必要再给canvas的style属性设置宽高了,如下两行代码是不是可以省略:
canvas.style.width = width + 'px';
canvas.style.height = height + 'px';
感觉有点多余?
如果需要设置,请老师帮忙讲解一下为什么,有什么好处?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,这两句的效果在于:

http://img1.sycdn.imooc.com//climg/5e4a2a6c094ecb3905640093.jpg

删掉也是可以的,并不妨碍效果实现的。

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

好帮手慕码 2020-02-17 11:11:51

同学你好,视频后面有讲到的,如果还是不明白可以这样理解:

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

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

 style样式 里设定的是仅画板的宽高300*300,画纸的宽高还是为默认值300*150,画纸不会让画板就这么空出一片,于是画纸连同图像就要一起拉伸到跟画板大小一样。在此例子当中,画纸宽与画板宽都为300,而高为画板的一半,因此只需将高拉伸一倍即可,所以图像也一起被拉伸变瘦,X方向不变,Y方向增至一倍, 所以就得到了变形之后的椭圆。

如果我的回答帮到了你,欢迎采纳,祝学习愉快~~

  • 提问者 人生的起源 #1
    你说的拉伸这个道理我是知道的,我想问的是,好像没有必要再设置一个style是不是? 只设置canvas的width和height就已经达到效果了呀
    2020-02-17 11:23:48
  • 提问者 人生的起源 #2
    我问的问题不是为什么会变形,而是js代码里多写了两行 canvas.style.width = width + 'px'; canvas.style.height = height + 'px'; 我觉得这两行好像没必要写
    2020-02-17 11:26:31
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师