Как видно из заголовка, я пытаюсь нарисовать шаблон в прямоугольнике.Я создал функцию конструктора прямоугольника, чтобы нарисовать несколько прямоугольников, а затем сохранил их в массиве, чтобы выполнить цикл и вызвать функцию createRect()
.
Проблема в том, что холст полностью становится черным.
var canvas = document.getElementById("slideshow");
var ctx = canvas.getContext("2d");
var img = [];
var img_height = 380;
var img_length = 475.75;
function picture(){
this.img_height = img_height;
this.img_length = img_length;
this.X = 0;
this.getX = function(num) {
switch(num){
case 1:
break;
case 2:
this.X = this.img_length;
break;
case 3:
this.X = this.img_length * 2;
break;
case 4:
this.X = this.img_length * 3;
break;
case 5:
this.X = -this.img_length;
break;
};
};
this.createRect = function(num){
this.obj = document.getElementById('p' + num);
this.pattern = ctx.createPattern(this.obj, 'no-repeat');
ctx.fillStyle = this.pattern;
ctx.beginPath();
ctx.fillRect(this.X, 0, this.img_length,this.img_height);
ctx.fill();
}
};
Это циклы для создания и отображения каждого объекта.
//Create objects
for(let i = 0;i<=5;i++)
{
img[i-1] = new picture();
}
//get x coords and display
for(let i = 0;i<5;i++)
{
img[i].getX(i+1);
img[i].createRect(i+1);
}