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 相关文章推荐
深入了解Vue3模板编译原理
Nov 19 Vue.js
ESLint 是如何检查 .vue 文件的
Nov 30 Vue.js
vue中利用three.js实现全景图的完整示例
Dec 07 Vue.js
Vue3 实现双盒子定位Overlay的示例
Dec 22 Vue.js
Vue实现多页签组件
Jan 14 Vue.js
详解vue之自行实现派发与广播(dispatch与broadcast)
Jan 19 Vue.js
vue实现验证用户名是否可用
Jan 20 Vue.js
如何使用RoughViz可视化Vue.js中的草绘图表
Jan 30 Vue.js
Vue过滤器(filter)实现及应用场景详解
Jun 15 Vue.js
一篇文章告诉你如何实现Vue前端分页和后端分页
Feb 18 Vue.js
vue实现可以快进后退的跑马灯组件
Apr 08 Vue.js
vue特效之翻牌动画
Apr 20 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摘要生成函数(无乱码)
2012/02/04 PHP
PHP字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
php简单smarty入门程序实例
2015/06/11 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
2016/08/17 PHP
php生成静态页面并实现预览功能
2019/06/27 PHP
用JavaScript事件串连执行多个处理过程的方法
2007/03/09 Javascript
使用js完成节点的增删改复制等的操作
2014/01/02 Javascript
jquery实现鼠标拖拽滑动效果来选择数字的方法
2015/05/04 Javascript
举例讲解JavaScript中关于对象操作的相关知识
2015/11/16 Javascript
Bootstrap自动适应PC、平板、手机的Bootstrap栅格系统
2016/05/27 Javascript
微信小程序 数据交互与渲染实例详解
2017/01/21 Javascript
ReactNative之键盘Keyboard的弹出与消失示例
2017/07/11 Javascript
Node.js API详解之 Error模块用法实例分析
2020/05/14 Javascript
Vue + ts实现轮播插件的示例
2020/11/10 Javascript
[48:28]完美世界DOTA2联赛循环赛FTD vs Magma第二场 10月30日
2020/10/31 DOTA
[15:20]DOTA2-DPC中国联赛 正赛 Elephant vs Aster 选手采访
2021/03/11 DOTA
Python实现八皇后问题示例代码
2018/12/09 Python
python 搭建简单的http server,可直接post文件的实例
2019/01/03 Python
python Tkinter的图片刷新实例
2019/06/14 Python
python实现QQ批量登录功能
2019/06/19 Python
python实现通过队列完成进程间的多任务功能示例
2019/10/28 Python
Django生成PDF文档显示网页上以及PDF中文显示乱码的解决方法
2019/12/17 Python
用python 绘制茎叶图和复合饼图
2021/02/26 Python
美国领先的男士和女士内衣购物网站:Freshpair
2019/02/25 全球购物
办理居住证介绍信
2014/01/15 职场文书
《莫高窟》教学反思
2014/02/25 职场文书
装修设计师求职信
2014/02/26 职场文书
人事任命书怎么写
2014/06/05 职场文书
公司授权委托书样本
2014/09/15 职场文书
人身损害赔偿协议书格式
2014/11/01 职场文书
亲属关系公证书样本
2015/01/23 职场文书
话题作文之成长
2019/12/09 职场文书
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
2021/05/31 Python
详解Java实践之建造者模式
2021/06/18 Java/Android
java后台调用接口及处理跨域问题的解决
2022/03/24 Java/Android
pnpm对npm及yarn降维打击详解
2022/08/05 Javascript