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
如何使用 vue-cli 创建模板项目
Nov 19 Vue.js
Vue实现指令式动态追加小球动画组件的步骤
Dec 18 Vue.js
vue 使用class创建和清除水印的示例代码
Dec 25 Vue.js
vue实现简易的双向数据绑定
Dec 29 Vue.js
Vue页面渲染中key的应用实例教程
Jan 12 Vue.js
Vue常用API、高级API的相关总结
Feb 02 Vue.js
Vue中foreach数组与js中遍历数组的写法说明
Jun 05 Vue.js
vue-router中hash模式与history模式的区别
Jun 23 Vue.js
Vue Element-ui表单校验规则实现
Jul 09 Vue.js
Vue的生命周期一起来看看
Feb 24 Vue.js
VUE中的v-if与v-show区别介绍
Mar 13 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
利用文件属性结合Session实现在线人数统计
2006/10/09 PHP
PHP SQLite类
2009/05/07 PHP
php+highchats生成动态统计图
2014/05/21 PHP
PHP使用gmdate实现将一个UNIX 时间格式化成GMT文本的方法
2015/03/19 PHP
PHP实现的数组和XML文件相互转换功能示例
2018/03/15 PHP
PHP中的empty、isset、isnull的区别与使用实例
2019/03/22 PHP
JavaScript 判断浏览器类型及版本
2009/02/21 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
2015/09/01 Javascript
Javascript基础知识盲点总结之函数
2016/05/15 Javascript
jquery基本选择器匹配多个元素的实现方法
2016/09/05 Javascript
解析JavaScript模仿块级作用域
2016/12/29 Javascript
JS实现的简单拖拽功能示例
2017/03/13 Javascript
ES6学习教程之模板字符串详解
2017/10/09 Javascript
vue 中的keep-alive实例代码
2018/07/20 Javascript
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
JavaScript实现的3D旋转魔方动画效果实例代码
2019/07/31 Javascript
element-ui中按需引入的实现
2019/12/25 Javascript
[06:37]2014DOTA2国际邀请赛 昔日王者渴望重回巅峰
2014/07/12 DOTA
使用Python来编写HTTP服务器的超级指南
2016/02/18 Python
Python编程实现的简单Web服务器示例
2017/06/22 Python
python:print格式化输出到文件的实例
2018/05/14 Python
python3监控CentOS磁盘空间脚本
2018/06/21 Python
学生信息管理系统python版
2018/10/17 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
2019/01/05 Python
Python基础之字符串操作常用函数集合
2020/02/09 Python
Python中的流程控制详解
2021/02/18 Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
2021/03/03 Python
倩碧美国官网:Clinique美国
2016/07/20 全球购物
英国打印机墨盒销售网站:Ink Factory
2019/10/07 全球购物
个人贷款授权委托书样本
2014/10/07 职场文书
庭外和解协议书
2016/03/23 职场文书
曾国藩励志经典名言37句,蕴含哲理
2019/10/14 职场文书
mybatis中sql语句CDATA标签的用法说明
2021/06/30 Java/Android
Java反应式框架Reactor中的Mono和Flux
2021/07/25 Java/Android
java中为什么说子类的构造方法默认访问的是父类的无参构造方法
2022/04/13 Java/Android
JavaScript中reduce()的用法
2022/05/11 Javascript