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祖孙组件之间的数据传递案例
Dec 07 Vue.js
深入了解Vue动态组件和异步组件
Jan 26 Vue.js
vue集成一个支持图片缩放拖拽的富文本编辑器
Jan 29 Vue.js
vue 实现click同时传入事件对象和自定义参数
Jan 29 Vue.js
vue实现拖拽进度条
Mar 01 Vue.js
vue中axios封装使用的完整教程
Mar 03 Vue.js
vue实现无缝轮播效果(跑马灯)
May 14 Vue.js
Vue3.0写自定义指令的简单步骤记录
Jun 27 Vue.js
详解Vue slot插槽
Nov 20 Vue.js
Vue提供的三种调试方式你知道吗
Jan 18 Vue.js
vue修饰符.capture和.self的区别
Apr 22 Vue.js
vue @click.native 绑定原生点击事件
Apr 22 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无限极分类实现的两种解决方法
2013/04/28 PHP
php生成zip压缩文件的方法详解
2013/06/09 PHP
在Javascript中为String对象添加trim,ltrim,rtrim方法
2006/09/22 Javascript
JQuery的AJAX实现文件下载的小例子
2013/05/15 Javascript
window.location.href的用法(动态输出跳转)
2014/08/09 Javascript
字段太多jquey快速清空表单内容方法
2014/08/21 Javascript
javascript模拟map输出与去除重复项的方法
2015/02/09 Javascript
jQuery增加、删除及修改select option的方法
2016/08/19 Javascript
原生js仿jquery一些常用方法(必看篇)
2016/09/20 Javascript
Sortable.js拖拽排序使用方法解析
2016/11/04 Javascript
jQuery 的 ready()的纯js替代方法
2016/11/20 Javascript
jq给页面添加覆盖层遮罩的实例
2017/02/16 Javascript
AngularJS实现动态添加Option的方法
2017/05/17 Javascript
Vue多系统切换实现方案
2018/06/05 Javascript
JavaScript中 ES6变量的结构赋值
2018/07/10 Javascript
JS使用cookie保存用户登录信息操作示例
2019/05/30 Javascript
微信小程序-可移动菜单的实现过程详解
2019/06/24 Javascript
Python提取Linux内核源代码的目录结构实现方法
2016/06/24 Python
Windows上使用Python增加或删除权限的方法
2018/04/24 Python
python判断一个数是否能被另一个整数整除的实例
2018/12/12 Python
python自动化UI工具发送QQ消息的实例
2019/08/27 Python
详解python中*号的用法
2019/10/21 Python
基于Tensorflow:CPU性能分析
2020/02/10 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
2020/08/20 Python
HTML5添加禁止缩放功能
2017/11/03 HTML / CSS
英国精品买手店:Browns Fashion
2016/09/29 全球购物
耐克亚太地区:Nike APAC
2019/12/07 全球购物
师范大学应届生求职信
2013/11/21 职场文书
淘宝店铺营销方案
2014/02/13 职场文书
养生餐厅创业计划书范文
2014/03/26 职场文书
残疾人小组计划书
2014/04/27 职场文书
会计岗位说明书
2014/07/29 职场文书
社区党的群众路线教育实践活动总结材料
2014/10/31 职场文书
七一表彰大会简报
2015/07/20 职场文书
AJAX实现省市县三级联动效果
2021/10/16 Javascript
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
2022/03/23 MySQL