收到此错误 - 未捕获的类型错误:无法读取未定义的属性“getContext”

时间:2021-05-20 18:47:01

标签: javascript

我想我遇到了订购问题。这里发生了很多事情,对此仍然很陌生。我有一个随机点函数,我试图将其设置为 WP 主题中的 div。我没有把画布放在哪里(据我所知……如果我错了,请纠正我)所以我在 js 中创建了它。有谁知道是什么提示错误?

var c = document.createElement('canvas')[0];
var context = c.getContext('2d');


function assignToDiv() { // this kind of function you are looking for
  dataUrl = c.toDataURL();
  document.getElementsByClassName('.jupiterx-site')[0].style.background = 'url(' + dataUrl + ')'
}

function draw() {
  window.addEventListener('resize', resizeCanvas, false);

  function resizeCanvas() {
    c.width = document.body.scrollWidth;
    c.height = 2000;


    /**
     * Circles.
     */
    drawStuff();
  }
  resizeCanvas();
}
draw();
assignToDiv();

function drawStuff() {
  // dot count
  const dots = 17;
  // max distance from the center
  const radius = 2000;

  function getRandomInt(max) {
    return Math.floor(Math.random() * max);
  }


  var createDots = function() {
    for (var i = 0; i <= dots; i++) {
      context.beginPath();
      const dist = (Math.random()) * radius;
      var rand_x = getRandomInt(2000);
      var rand_y = getRandomInt(8000);
      context.arc(rand_x, rand_y, 90, 0, 2 * Math.PI);
      context.fillStyle = "#ed194f";
      context.filter = "blur(180px)";
      context.fill();
      context.closePath();
    }
  }

  createDots();
}

1 个答案:

答案 0 :(得分:2)

createElement() 不是元素数组,也不是数组。

所以你不能在上面使用括号。从您的函数 [0]

中删除 createElement()

像这样: document.createElement('canvas');