Vue使用鼠标在Canvas上绘制矩形


Posted in Vue.js onDecember 24, 2020

本文实例为大家分享了Vue使用鼠标在Canvas上绘制矩形的具体代码,供大家参考,具体内容如下

1.代码

<template>
 <div class="test" style="background-color: burlywood;">
 <canvas id="myCanvas" ref="myCanvas"
   width="460" height="240" @mousedown="mousedown" @mouseup="mouseup" @mousemove="mousemove">
 </canvas>
 </div>
</template>
 
<script>
 export default {
 name:"hello-world",
 data() {
  return {
  flag: false,
  x: 0,
  y: 0
  };
 },
 watch: {},
 computed: {},
 methods: {
  mousedown(e){
  console.log("鼠标落下");
  this.flag = true;
  this.x = e.offsetX; // 鼠标落下时的X
  this.y = e.offsetY; // 鼠标落下时的Y
  },
  mouseup(e){
  console.log("鼠标抬起");
  this.flag = false;
  },
  mousemove(e){
  console.log("鼠标移动");
  this.drawRect(e);
  },
  drawRect(e){
  if(this.flag){
   console.log("绘制图形");
   const canvas = this.$refs.myCanvas;
   var ctx = canvas.getContext("2d");
   let x = this.x;
   let y = this.y;
 
   ctx.clearRect(0,0,canvas.width,canvas.height);
   ctx.beginPath();
 
   //设置线条颜色,必须放在绘制之前
   ctx.strokeStyle = '#00ff00';
   // 线宽设置,必须放在绘制之前
   ctx.lineWidth = 1;
 
   ctx.strokeRect(x,y,e.offsetX-x,e.offsetY-y);
  }
  }
 },
 created() {
 
 },
 mounted() {
 
 }
 };
</script>
 
<style scoped>
 #myCanvas{
 background-color: forestgreen;
 background-image:url('../bg.jpg');
 }
</style>

2.运行截图

Vue使用鼠标在Canvas上绘制矩形

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Vue.js 相关文章推荐
vue+iview实现文件上传
Nov 17 Vue.js
基于vue项目设置resolves.alias: '@'路径并适配webstorm
Dec 02 Vue.js
vue中利用three.js实现全景图的完整示例
Dec 07 Vue.js
vue绑定class的三种方法
Dec 24 Vue.js
vue二选一tab栏切换新做法实现
Jan 19 Vue.js
vue仿携程轮播图效果(滑动轮播,下方高度自适应)
Feb 11 Vue.js
vue 中 get / delete 传递数组参数方法
Mar 23 Vue.js
Vue全局事件总线你了解吗
Feb 24 Vue.js
Vue2.0搭建脚手架
Mar 13 Vue.js
vue使用wavesurfer.js解决音频可视化播放问题
Apr 04 Vue.js
vue代码分块和懒加载非必要资源文件
Apr 11 Vue.js
解决vue-router的beforeRouteUpdate不能触发
Apr 14 Vue.js
vue绑定class的三种方法
Dec 24 #Vue.js
全面解析Vue中的$nextTick
Dec 24 #Vue.js
vue实现登录、注册、退出、跳转等功能
Dec 23 #Vue.js
vue下拉刷新组件的开发及slot的使用详解
Dec 23 #Vue.js
Vue3 实现双盒子定位Overlay的示例
Dec 22 #Vue.js
详解Vue的异步更新实现原理
Dec 22 #Vue.js
Vue组件简易模拟实现购物车
Dec 21 #Vue.js
You might like
第七节 类的静态成员 [7]
2006/10/09 PHP
综合图片计数器
2006/10/09 PHP
基于php在各种web服务器的运行模式详解
2013/06/03 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
js不是基础的基础
2006/12/24 Javascript
jQuery EasyUI中对表格进行编辑的实现代码
2010/06/10 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
Jquery实现三层遍历删除功能代码
2013/04/23 Javascript
js禁止页面复制功能禁用页面右键菜单示例代码
2013/08/29 Javascript
JQuery表格拖动调整列宽效果(自己动手写的)
2014/09/01 Javascript
Seajs是什么及sea.js 由来,特点以及优势
2016/10/13 Javascript
详解nodejs中exports和module.exports的区别
2017/02/17 NodeJs
ES6中箭头函数的定义与调用方式详解
2017/06/02 Javascript
详解JS数据类型的值拷贝函数(深拷贝)
2017/07/13 Javascript
20个最常见的jQuery面试问题及答案
2018/05/23 jQuery
使用JS获取页面上的所有标签
2018/10/18 Javascript
微信小程序自定义轮播图
2018/11/04 Javascript
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
浅谈Vue项目骨架屏注入实践
2019/08/05 Javascript
JavaScript实现移动小精灵的案例代码
2020/12/12 Javascript
python基础教程之字典操作详解
2014/03/25 Python
利用Python中unittest实现简单的单元测试实例详解
2017/01/09 Python
神经网络(BP)算法Python实现及应用
2018/04/16 Python
python删除文本中行数标签的方法
2018/05/31 Python
python 筛选数据集中列中value长度大于20的数据集方法
2018/06/14 Python
Python SELENIUM上传文件或图片实现过程
2019/10/28 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
2020/01/20 Python
django-crontab实现服务端的定时任务的示例代码
2020/02/17 Python
利用Storage Event实现页面间通信的示例代码
2018/07/26 HTML / CSS
SKECHERS斯凯奇中国官网:来自美国的运动休闲品牌
2018/11/14 全球购物
租赁意向书范本
2014/04/01 职场文书
《傅雷家书》教学反思
2014/04/20 职场文书
俞敏洪励志演讲稿
2014/04/29 职场文书
公司表扬信格式
2015/05/04 职场文书
大学校园招聘会感想
2015/08/10 职场文书
以MySQL5.7为例了解一下执行计划
2022/04/13 MySQL