我得到了“;未捕获的类型错误:无法读取属性'宽度'“为空”;在遵循教程之后
I am getting "Uncaught TypeError: Cannot read property 'width' of null" after following a tutorial
这是我的javascript代码,但我似乎也没有什么问题。我的html id也没有错。我在youtube上学习了一个教程,它对做这件事的人有效。有人能帮我吗?
var canvas;
var ctx;
var background;
var width = 300;
var height = 200;
var cloud;
var cloud_x;
function init() {
canvas = document.getElementById("mycanvas");
width = canvas.width; //THIS IS WHERE I GET MY ERROR
height = canvas.height;
ctx = canvas.getContext("2d");
// init background
background = new Image();
background.src = 'http://silveiraneto.net/wp-content/uploads/2011/06/forest.png';
// init cloud
cloud = new Image();
cloud.src = 'http://silveiraneto.net/wp-content/uploads/2011/06/cloud.png';
cloud.onload = function(){
cloud_x = -cloud.width;
};
return setInterval(main_loop, 10);
}
function update(){
cloud_x += 0.3;
if (cloud_x > width ) {
cloud_x = -cloud.width;
}
}
function draw() {
ctx.drawImage(background,0,0);
ctx.drawImage(cloud, cloud_x, 0);
}
function main_loop() {
draw();
update();
}
init();
我的html
<canvas id="mycanvas" width="640" height="480">Alternative text if browser don't support canvas.</canvas>
更改此行:
init();
通过这条线:
document.addEventListener('DOMContentLoaded', init, false);
当DOM
准备就绪时,将调用init函数。
jsfiddle
相关文章:
- 如果文本字段为空,则使用JavaScript应用CSS样式
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- 如果localstorage为空,则显示欢迎消息
- 使用 jQuery 检查所有值是否为空或已填充
- 如果值为空,如何设置输入的默认值?jQuery
- 如何检查元素的内容是否为空,如果为空,请在jquery中删除该元素
- 在MVC 4中,对Controller的Ajax调用为空
- Spring Ajax列表返回,但对象为空
- 输入文本框为空时的阻止按钮asp.网络表单
- $_POST变量为空
- 如果数据为空,Ajax加载不会停止
- 边框颜色是't如果输入为空,则更改
- 如何在输入为空时停止发送
- 如果用户没有更改,则表单值为空
- 在jquery中获取文本输入val始终为空
- 即使 ng 模型有值,也使输入字段为空
- 检查文本区域是否为空总是返回false
- 当所有输入文本字段都为空时,禁止表单提交,但当jquery中的任何字段不为空时允许提交
- 我得到了“;未捕获的类型错误:无法读取属性'宽度'“为空”;在遵循教程之后
- 在宽度为空的Radgrid列上设置最小宽度的方法