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 18 Vue.js
详解Vue3 Teleport 的实践及原理
Dec 02 Vue.js
详解vue中使用transition和animation的实例代码
Dec 12 Vue.js
vue监听滚动事件的方法
Dec 21 Vue.js
vue调用微信JSDK 扫一扫,相册等需要注意的事项
Jan 03 Vue.js
vue 根据选择的月份动态展示日期对应的星期几
Feb 06 Vue.js
Vue中避免滥用this去读取data中数据
Mar 02 Vue.js
Vue-router编程式导航的两种实现代码
Mar 04 Vue.js
vue3中provide && inject的使用
Jul 01 Vue.js
Vue的列表之渲染,排序,过滤详解
Feb 24 Vue.js
vue实现滑动解锁功能
Mar 03 Vue.js
教你部署vue项目到docker
Apr 05 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
提问的智慧
2006/10/09 PHP
PHP5中使用PDO连接数据库的方法
2010/08/01 PHP
php数组函数序列之rsort() - 对数组的元素值进行降序排序
2011/11/02 PHP
解析PHP中如何将数组变量写入文件
2013/06/06 PHP
PHP调用wsdl文件类型的接口代码分享
2014/11/19 PHP
php单例模式的简单实现方法
2016/06/10 PHP
优化 JavaScript 代码的方法小结
2009/07/16 Javascript
Javascript 验证上传图片大小[客户端]
2009/08/01 Javascript
jQuery实现鼠标划过修改样式的方法
2015/04/14 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
jQuery点击改变class并toggle及toggleClass()方法定义用法
2015/12/11 Javascript
深入解析AngularJS框架中$scope的作用与生命周期
2016/03/05 Javascript
Bootstrap3学习笔记(二)之排版
2016/05/20 Javascript
浅析Node.js实现HTTP文件下载
2016/08/05 Javascript
多种方式实现js图片预览
2016/12/12 Javascript
canvas 画布在主流浏览器中的尺寸限制详细介绍
2016/12/15 Javascript
layui前段框架日期控件使用方法详解
2017/05/19 Javascript
vue语法之拼接字符串的示例代码
2017/10/25 Javascript
JS中的两种数据类型及实现引用类型的深拷贝的方法
2018/08/12 Javascript
微信小程序自定义模态弹窗组件详解
2019/12/24 Javascript
python 排列组合之itertools
2013/03/20 Python
python中查看变量内存地址的方法
2015/05/05 Python
python中异常报错处理方法汇总
2016/11/20 Python
利用python实现xml与数据库读取转换的方法
2017/06/17 Python
Python打包方法Pyinstaller的使用
2018/10/09 Python
对python3 Serial 串口助手的接收读取数据方法详解
2019/06/12 Python
python操作kafka实践的示例代码
2019/06/19 Python
使用分层画布来优化HTML5渲染的教程
2015/05/08 HTML / CSS
土木工程专业自荐信
2013/10/04 职场文书
劳模事迹材料范文
2014/12/24 职场文书
街道党风廉政建设调研报告
2015/01/01 职场文书
2015年度酒店客房部工作总结
2015/05/25 职场文书
python编写五子棋游戏
2021/05/25 Python
IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署
2021/09/25 Java/Android
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技
CSS list-style-type属性使用方法
2023/05/21 HTML / CSS