js实现画图

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>js实现画图</title>
    <style type="text/css">
      #xy {
        position: fixed;
        left: 0;
        bottom: 0;
      }
      .box {
        border-radius: 50%;
        position: absolute;
      }
      input {
        position: absolute;
        z-index: 999999999999;
      }
      input:nth-child(2) {
        left: 50px;
      }
      input:nth-child(3) {
        left: 100px;
      }
    </style>
  </head>
  <body>
    <input type="button" name="" id="btn1" value="+" />
    <input type="button" name="" id="btn2" value="-" />
    <input type="button" name="" id="red" value="red" />
    <span id="xy"></span>
  </body>
  <script type="text/javascript">
    // 1 获取节点
    var btnsObj = document.querySelectorAll("input");
    var btn1Obj = btnsObj[0];
    var btn2Obj = btnsObj[1];
    var btn3Obj = btnsObj[2];
    var spanObj = document.getElementById("xy");
    // div背景颜色
    var c = "black";
    // div宽高的设置
    var w = (h = 8);
    /*******必须是按下的时候,滑过才显示******/
    // 2 给document绑定鼠标移动事件
    document.onmousedown = function (event) {
      // 嵌套一个移动事件
      document.onmousemove = function () {
        // 获取事件对象
        var e = window.event || event;
        // 获取鼠标实相对于文档的时的位置
        var mouseX = e.pageX;
        var mouseY = e.pageY;
        // 将实时的位置放到页面左下角
        spanObj.innerHTML = mouseX + "," + mouseY;
        /******动态创建div,鼠标经过后显示******/
        var divObj = document.createElement("div");
        // 设置div的定位
        divObj.style.position = "absolute";
        divObj.style.top = mouseY + "px";
        divObj.style.left = mouseX + "px";
        // 设置背景颜色
        divObj.style.background = c;
        // 设置div的宽高
        divObj.style.width = w + "px";
        divObj.style.height = h + "px";
        // 设置div为圆的
        divObj.style.borderRadius = "50%";
        // 追加到页面中
        document.body.appendChild(divObj);
      };
    };

    // 鼠标抬起来的时候,清除移动事件
    document.onmouseup = function () {
      document.onmousemove = null;
    };

    /*******点击控制div的大小******/
    btn1Obj.onclick = function () {
      w += 2;
      h += 2;
    };
    btn2Obj.onclick = function () {
      w -= 2;
      h -= 2;
    };
    //点击之后改变div颜色
    btn3Obj.onclick = function () {
      c = "red";
    };
  </script>
</html>

效果如下:
在这里插入图片描述

参考博客:https://blog.csdn.net/m0_52217128/article/details/120516286?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-5-120516286-blog-89309983.pc_relevant_recovery_v2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-5-120516286-blog-89309983.pc_relevant_recovery_v2&utm_relevant_index=8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue.js本身并不是一个画图工具,但可以与其他画图库或工具集成来实现画图功能。以下是使用Vue.js实现画图的一种方式: 1. 使用Vue.js创建一个画布组件,例如: ```html <template> <div> <canvas ref="canvas"></canvas> </div> </template> <script> export default { name: 'Canvas', props: { width: { type: Number, default: 800 }, height: { type: Number, default: 600 } }, mounted() { this.ctx = this.$refs.canvas.getContext('2d'); this.$refs.canvas.width = this.width; this.$refs.canvas.height = this.height; } } </script> <style scoped> canvas { border: 1px solid #ccc; } </style> ``` 2. 在mounted生命周期中获取canvas上下文,并设置画布大小。 3. 使用canvas API绘制图形,例如: ```html <template> <div> <canvas ref="canvas"></canvas> </div> </template> <script> export default { name: 'Canvas', props: { width: { type: Number, default: 800 }, height: { type: Number, default: 600 } }, mounted() { this.ctx = this.$refs.canvas.getContext('2d'); this.$refs.canvas.width = this.width; this.$refs.canvas.height = this.height; this.ctx.beginPath(); this.ctx.arc(100, 100, 50, 0, 2 * Math.PI); this.ctx.fillStyle = 'red'; this.ctx.fill(); } } </script> <style scoped> canvas { border: 1px solid #ccc; } </style> ``` 4. 在mounted生命周期中使用canvas API绘制图形,例如绘制一个红色的圆形。 以上是一个简单的使用Vue.js实现画图的例子,具体实现还需要根据实际需求进行调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值