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 组件注册
Nov 20 Vue.js
在vue中使用inheritAttrs实现组件的扩展性介绍
Dec 07 Vue.js
Vue-router中hash模式与history模式的区别详解
Dec 15 Vue.js
Vue项目中使用mock.js的完整步骤
Jan 12 Vue.js
详解vite+ts快速搭建vue3项目以及介绍相关特性
Feb 25 Vue.js
vue-router路由懒加载及实现的3种方式
Feb 28 Vue.js
详解vue3中组件的非兼容变更
Mar 03 Vue.js
Vue项目中如何封装axios(统一管理http请求)
May 02 Vue.js
vue Element-ui表格实现树形结构表格
Jun 07 Vue.js
vue中div禁止点击事件的实现
Apr 02 Vue.js
vue数据字典取键值项目的字典问题
Apr 12 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
PHP.MVC的模板标签系统(五)
2006/09/05 PHP
php实现统计邮件大小的方法
2013/08/06 PHP
php通过sort()函数给数组排序的方法
2015/03/18 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
Laravel 解决composer相关操作提示php相关异常的问题
2019/10/23 PHP
去除链接虚线全面分析总结
2006/08/15 Javascript
mouse_on_title.js
2006/08/25 Javascript
如何用js控制css中的float的代码
2007/08/16 Javascript
jQuery对象和DOM对象的相互转化实现代码
2010/03/02 Javascript
弹出最简单的模式化遮罩层的js代码
2013/12/04 Javascript
JS的document.all函数使用示例
2013/12/30 Javascript
JS简单实现动画弹出层效果
2015/05/05 Javascript
javascript伸缩型菜单实现代码
2015/11/16 Javascript
Vue.js实现微信过渡动画左右切换效果
2017/06/13 Javascript
AngularJS解决ng-if中的ng-model值无效的问题
2017/06/21 Javascript
浅谈ECMAScript6新特性之let、const
2017/08/02 Javascript
React注册倒计时功能的实现
2018/09/06 Javascript
详解微信小程序支付流程与梳理
2019/07/16 Javascript
JS数组的常用10种方法详解
2020/05/08 Javascript
一个检测OpenSSL心脏出血漏洞的Python脚本分享
2014/04/10 Python
使用python编写批量卸载手机中安装的android应用脚本
2014/07/21 Python
Python入门必须知道的11个知识点
2018/03/21 Python
Linux下python3.6.1环境配置教程
2018/09/26 Python
详解Python3中setuptools、Pip安装教程
2019/06/18 Python
Python中使用__new__实现单例模式并解析
2019/06/25 Python
详解python解压压缩包的五种方法
2019/07/05 Python
python实现3D地图可视化
2020/03/25 Python
css3 box-shadow阴影(外阴影与外发光)图示讲解
2017/08/11 HTML / CSS
俄罗斯外国汽车和国产汽车配件网上商店:Движком
2020/04/19 全球购物
西部世纪.net笔试题面试题
2014/04/03 面试题
城管综合整治方案
2014/05/01 职场文书
干部选拔任用方案
2014/05/26 职场文书
大学生赌博检讨书
2014/09/22 职场文书
运动会开幕式新闻稿
2015/07/17 职场文书
酒店员工管理制度
2015/08/05 职场文书
《风筝》教学反思
2016/02/23 职场文书