在Vue中使用Canvas绘制背景

好家伙,

 

在vue中使用canvas绘制与在html中使用canvas绘制大致相同,

但又有所区别

 

 法一(无图片资源):

vue中canvas的使用 - 掘金 (juejin.cn)

 

  • 找到cancas元素;
  • 创建context对象;getContext() 方法返回一个用于画布上绘图环境;参数 ‘2d’ 指定了画布上绘制的类型,它指定了二维绘图,
  • 并且导致这个方法返回一个环境对象,该对象导出一个二维绘图API。了解别的参数查看MDN文档。
  • 设置fillStyle属性可以是CSS颜色,渐变,或图案。
  • fillRect(x,y,width,height) 方法定义了矩形当前的填充方式,x、y为坐标位置。

 
 

法二(有图片资源):

 

var img = new Image();   // 创建 img 元素
img.onload = function(){
  // 执行 drawImage 语句
}
img.src = 'myImage.png'; // 设置图片源地址

 

 

修Bug:然而为什么画不出来呢?

 

<template>
    <div>
        <canvas id="myCanvas" width="480" height="650"></canvas>
        <!-- <img src="../../assets/background.png" alt=""> -->
    </div>
</template>
<script>
export default {
    mounted() {
        this.initCancas();
    },
    methods: {
        initCancas() {
            console.log("初始化canvas");
            let canvas = document.getElementById('myCanvas');
            let context = canvas.getContext('2d');
            const bg = new Image();
            bg.src = "../../assets/background.png";
            context.drawImage(bg, 0,0);
            console.log('结束')
            bg.addEventListener("load", () => {
                setInterval(() => {
                    context.drawImage(this.bg, 0,0);
                },10)
            })
        },

    }
}
</script>
<style>
canvas {
      border: 1px solid red;
    }
</style>

 

(明天给他解决一下) 

 

 
posted @ 2022-11-17 23:57  养肥胖虎  阅读(2081)  评论(0编辑  收藏  举报