首页 > 其他分享 >js canvas

js canvas

时间:2022-10-30 19:25:21浏览次数:45  
标签:canvas ctx cvs fillStyle var 100 js

 

 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <style type="text/css">
        * {
            margin: 0;
            padding: 0;
        }

        .canvas-box {
            position: relative;
        }

        canvas {
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.2)
        }
    </style>

    <title>Document</title>
</head>

<body>
    <!-- <canvas id="canvas"></canvas>
    <script>
        var canvas = document.getElementById("canvas");
        var ctx = canvas.getContext("2d");
        ctx.fillStyle = "red";
        ctx.fillRect(0, 0, 100, 500);
        ctx.fillRect(100, 100, 600, 600);

        ctx.fillStyle = "blue";

        // ctx.stroke();
        console.log(ctx.isPointInPath(5, 5)); // true
    </script> -->





    <div class="canvas-box">
        <canvas id="cvs" width="500" height="400">不支持canvas</canvas>
    </div>

    <script>
        var cvs = document.getElementById('cvs');
        var ctx = cvs.getContext('2d');
        // 封装绘制的图形
        function draw() {
            ctx.fillStyle = '#000';
            ctx.beginPath();
            ctx.moveTo(100, 100);
            ctx.bezierCurveTo(110, 110, 199, 278, 300, 379);
            ctx.lineTo(400, 100)
            ctx.closePath();
        }
        function circle() {
            ctx.fillStyle = '#000';
            ctx.beginPath();
            ctx.arc(100, 200, 50, 0, Math.PI * 2)
            ctx.closePath();
        }
        // 初始化绘制图形
        draw();
        ctx.fill()
        circle();
        ctx.fill()
        var fns = [draw, circle];
        // 监听鼠标事件
        cvs.onmousemove = function (e) {
            // 得到鼠标的坐标
            var x = e.pageX, y = e.pageY;
            ctx.clearRect(0, 0, 400, 300)
            // 遍历绘制图形
            for (var i = fns.length; i--;) {
                fns[i]();
                // 每绘制一个图形就判断一次当前鼠标的坐标是否在这个图形上,然后进行自定义操作
                if (ctx.isPointInPath(x, y)) {
                    ctx.fillStyle = "#f00"
                } else {
                    ctx.fillStyle = "#000"
                }
                ctx.fill()
            }
        }
    </script>


</body>

</html>

 

标签:canvas,ctx,cvs,fillStyle,var,100,js
From: https://www.cnblogs.com/angdh/p/16841952.html

相关文章

  • js复习
    记录那些小小的JS书面知识JS的组成JS语法(ECMAScript),页面文档对象模型(DOM),浏览器对象模型(BOM)ECMAScript:ECMAScript规定了JS的编程语法和基础核心知识,是所有浏......
  • js图片格式转换(File、blob、二进制)
    一、File转Blob​​MDN文档createObjectURL​​​​​​<buttonclass="btn"onclick="openFile()">点我</button>functionopenFile(){varinput=document.createEle......
  • springboot~写一个从excel读取json到List<Map>的方法
    excel读出来的json,它是一个字符串,不是标准json,所以需要对字符串字段进行解析复杂的excel如图通过poi解析json,通过jackson完成对字段的解析publicstaticList<Map<String,O......
  • cryptoJs DES_CBC_Pkcs7 转成 Java
    前端DES加密:importcryptoJsfrom'crypto-js';//DES加密functionencrypt(message,key,iv){//字符串转16进制constkeyHex=cryptoJs.enc.Utf8.parse......
  • js操作摄像头进行拍照
    MDN文档-getUserMedia介绍<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><m......
  • three.js 小车模型的基本结构
    基本结构代码import*asTHREEfrom'three'importStatfrom'three/examples/jsm/libs/stats.module'import{OrbitControls}from'three/examples/jsm/control......
  • 图解JS事件对象screenX、clientX、pageX, offsetX区别
    screenX、clientX、pageX和offsetX的区别1、screenX和screenY参照点:电脑屏幕左上角screenX:鼠标点击位置相对于电脑屏幕左上角的水平偏移量screenY:鼠标点击位置相对......
  • Vue学习笔记之vue.js 两个等号 == 和三个等号===的区别 数字0和空字符串
    vuejavascript等号=====数字0空字符串/**==用于比较两者是否相等,忽略数据类型===用于更严谨的比较,值和值的数据类型都需要同时比较*/<!DOCT......
  • JS之循环发送请求代码优化
    需求:将数组中的值作为参数,循环调用新增接口实现批量导入功能。因为接口调用有时间间隔限制,避免误操作,所以需要设置接口请求的间隔时间。原代码如下:constrecursive=(arr,......
  • js数据处理4
    <template><ModuleBox2title="数据趋势图"bgType="2":cityShow="true"moduleType="sjqs":styleObj="styleObj"><divclass="echarts-box">......