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.0实现点击切换验证码(组件)及校验
Nov 18 Vue.js
详解vue 组件注册
Nov 20 Vue.js
vue+element实现动态加载表单
Dec 13 Vue.js
vue 动态生成拓扑图的示例
Jan 03 Vue.js
通过vue.extend实现消息提示弹框的方法记录
Jan 07 Vue.js
Vue实现todo应用的示例
Feb 20 Vue.js
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
Feb 23 Vue.js
vue-router路由懒加载及实现的3种方式
Feb 28 Vue.js
vue使用v-model进行跨组件绑定的基本实现方法
Apr 28 Vue.js
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
May 25 Vue.js
vue如何实现关闭对话框后刷新列表
Apr 08 Vue.js
vue递归实现树形组件
Jul 15 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
最贵的咖啡是怎么产生的,它的风味怎么样?
2021/03/04 新手入门
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
2014/06/12 PHP
php实现parent调用父类的构造方法与被覆写的方法
2015/02/11 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
PHP sdk文档处理常用代码示例解析
2020/12/09 PHP
jQuery+CSS 实现随滚动条增减的汽水瓶中的液体效果
2011/09/26 Javascript
Js 冒泡事件阻止实现代码
2013/01/27 Javascript
JQuery slideshow的一个小问题(如何发现及解决过程)
2013/02/06 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(jquery)
2014/11/16 Javascript
javascript实现二级级联菜单的简单制作
2015/11/19 Javascript
vueJS简单的点击显示与隐藏的效果【实现代码】
2016/05/03 Javascript
用js动态添加html元素,以及属性的简单实例
2016/07/19 Javascript
JavaScript如何实现跨域请求
2016/08/05 Javascript
jQuery弹出下拉列表插件(实现kindeditor的@功能)
2016/08/16 Javascript
jQuery 实现图片的依次加载图片功能
2017/07/06 jQuery
nodejs 搭建简易服务器的图文教程(推荐)
2017/07/18 NodeJs
利用nvm管理多个版本的node.js与npm详解
2017/11/02 Javascript
vue日历/日程提醒/html5本地缓存功能
2019/09/02 Javascript
Vue 中使用富文本编译器wangEditor3的方法
2019/09/26 Javascript
JS实现鼠标移动拖尾
2020/12/27 Javascript
python实现无证书加密解密实例
2014/10/27 Python
Python实现SVN的目录周期性备份实例
2015/07/17 Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
2017/09/26 Python
python如何实现反向迭代
2018/03/20 Python
Python3处理HTTP请求的实例
2018/05/10 Python
Python字符串逆序输出的实例讲解
2019/02/16 Python
Python3爬楼梯算法示例
2019/03/04 Python
python tools实现视频的每一帧提取并保存
2020/03/20 Python
Python如何使用OS模块调用cmd
2020/02/27 Python
详解h5页面在不同ios设备上的问题总结
2019/03/01 HTML / CSS
Amcal中文官网:澳洲综合性连锁药房
2019/03/28 全球购物
到底Java是如何传递参数的?是by value或by reference?
2012/07/13 面试题
什么是Rollback Segment
2013/04/22 面试题
合伙经营协议书范本
2014/09/13 职场文书
家长高考寄语
2015/02/27 职场文书