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项目如何引入bootstrap、elementUI、echarts
Nov 26 Vue.js
vue从后台渲染文章列表以及根据id跳转文章详情详解
Dec 14 Vue.js
vue实现登录、注册、退出、跳转等功能
Dec 23 Vue.js
Vue+penlayers实现多边形绘制及展示
Dec 24 Vue.js
vue调用微信JSDK 扫一扫,相册等需要注意的事项
Jan 03 Vue.js
Vue + iView实现Excel上传功能的完整代码
Jun 22 Vue.js
vite+vue3.0+ts+element-plus快速搭建项目的实现
Jun 24 Vue.js
详解Vue项目的打包方式(生成dist文件)
Jan 18 Vue.js
Vue提供的三种调试方式你知道吗
Jan 18 Vue.js
VUE中的v-if与v-show区别介绍
Mar 13 Vue.js
vue实现Toast组件轻提示
Apr 10 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程序的php代码
2008/04/07 PHP
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
2014/12/09 PHP
Yii2.0高级框架数据库增删改查的一些操作
2015/11/16 PHP
php版微信公众平台实现预约提交后发送email的方法
2016/09/26 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
2018/05/12 PHP
javascrip客户端验证文件大小及文件类型并重置上传
2011/01/12 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
2013/01/15 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
js实现动画特效的文字链接鼠标悬停提示的方法
2015/03/02 Javascript
微信小程序 animation API详解及实例代码
2016/10/08 Javascript
JavaScript实现页面定时刷新(定时器,meta)
2016/10/12 Javascript
jQuery手指滑动轮播效果
2016/12/22 Javascript
es6学习笔记之Async函数基本教程
2017/05/11 Javascript
浅谈Emergence.js 检测元素可见性的 js 插件
2017/11/18 Javascript
Vue2.5通过json文件读取数据的方法
2018/02/27 Javascript
AngularJs中$cookies简单用法分析
2019/05/30 Javascript
Vue动态加载图片在跨域时无法显示的问题及解决方法
2020/03/10 Javascript
Vue实现Header渐隐渐现效果的实例代码
2020/11/05 Javascript
python翻译软件实现代码(使用google api完成)
2013/11/26 Python
python字典多键值及重复键值的使用方法(详解)
2016/10/31 Python
浅谈使用Python变量时要避免的3个错误
2017/10/30 Python
Python可迭代对象操作示例
2019/05/07 Python
Django如何实现上传图片功能
2019/08/16 Python
Anaconda+vscode+pytorch环境搭建过程详解
2020/05/25 Python
python不到50行代码完成了多张excel合并的实现示例
2020/05/28 Python
pyqt5 textEdit、lineEdit操作的示例代码
2020/08/12 Python
python空元组在all中返回结果详解
2020/12/15 Python
python 实现有道翻译功能
2021/02/26 Python
CSS3实现多重边框的方法总结
2016/05/31 HTML / CSS
美国最佳在线航班预订网站:LookupFare
2019/03/26 全球购物
美国亚洲时尚和美容产品的一站式网上商店:Stylevana
2019/09/05 全球购物
什么是Linux虚拟文件系统VFS
2012/01/31 面试题
搞笑获奖感言
2014/01/30 职场文书
大队委竞选演讲稿
2014/04/28 职场文书
初二学生评语大全
2014/12/26 职场文书
社会主义核心价值观主题教育活动总结
2015/05/07 职场文书