当前位置: 首页 > news >正文

历史上的今天 网站如何做2345网址大全

历史上的今天 网站如何做,2345网址大全,广告学,太原做网站直通车需求 想要做如下图的二维码带文字&#xff0c;且能够长按保存 前期准备 一个canvas安装qrcode&#xff08;命令&#xff1a;npm i qrcode&#xff09; 画二维码及文字 初始化画布 <template><div><canvas ref"canvas" width"300" he…

需求

想要做如下图的二维码带文字,且能够长按保存
在这里插入图片描述

前期准备

  1. 一个canvas
  2. 安装qrcode(命令:npm i qrcode)

画二维码及文字

初始化画布

<template><div><canvas ref="canvas" width="300" height="400"></canvas></div>
</template><script setup>
import { ref, onMounted } from 'vue';
const canvas = ref(null);
onMounted(() => {// 初始化画布let ctx = canvas.value.getContext('2d');
})
</script>

画文字

<template><div><canvas ref="canvas" width="300" height="400"></canvas></div>
</template><script setup>
import { ref, onMounted } from 'vue';
const canvas = ref(null);
onMounted(() => {// 初始化画布let ctx = canvas.value.getContext('2d');// 填充白色ctx.fillStyle = "#fff";ctx.fillRect(0, 0, 300, 400);// 画文字ctx.font = "14px Microsoft YaHei"ctx.textBaseline = "middle";ctx.textAlign = "center";ctx.fillStyle = "#333333";ctx.fillText("简单教程,简单编程", canvas.value.width / 2, 40);
})
</script>

画二维码

二维码需要使用qrcode转换

<template><div><canvas ref="canvas" width="300" height="400"></canvas></div>
</template><script setup>
import QRCode from 'qrcode';
import { ref, onMounted } from 'vue';
const canvas = ref(null);
onMounted(() => {// 初始化画布let ctx = canvas.value.getContext('2d');// 填充白色ctx.fillStyle = "#fff";ctx.fillRect(0, 0, 300, 400);// 画文字ctx.font = "14px Microsoft YaHei"ctx.textBaseline = "middle";ctx.textAlign = "center";ctx.fillStyle = "#333333";ctx.fillText("简单教程,简单编程", canvas.value.width / 2, 40);// 画二维码QRCode.toDataURL('I am a pony!', function (err, url) {let img = new Image()img.src = url;img.onload = function () {ctx.drawImage(img, 50, 50, 200, 200);}})
})
</script>

长按保存

通过监听触摸事件的时间判定长按

<template><div><div class="friend" @touchstart="gtouchstart()" @touchmove="gtouchmove()" @touchend="showDeleteButton()"><canvas ref="canvas" width="300" height="400"></canvas></div></div>
</template><script setup>
import QRCode from 'qrcode';
import { ref, onMounted } from 'vue';
const canvas = ref(null);
onMounted(() => {let ctx = canvas.value.getContext('2d');// 填充白色ctx.fillStyle = "#fff";ctx.fillRect(0, 0, 300, 400);// 画文字ctx.font = "14px Microsoft YaHei"ctx.textBaseline = "middle";ctx.textAlign = "center";ctx.fillStyle = "#333333";ctx.fillText("简单教程,简单编程", canvas.value.width / 2, 40);// 画二维码QRCode.toDataURL('I am a pony!', function (err, url) {let img = new Image()img.src = url;img.onload = function () {ctx.drawImage(img, 50, 50, 200, 200);}})
})
let timeOutEvent = null //定时器 
//长按事件设置定时器
let gtouchstart = () => {timeOutEvent = setTimeout(() => {longPress()}, 700)
}//手释放,如果在200毫秒内就释放,则取消长按事件,此时可以执行onclick应该执行的事件
let showDeleteButton = () => {clearTimeout(timeOutEvent); //清除定时器if (timeOutEvent != 0) {timeOutEvent = 0;}return false;
}
//如果手指有移动,则取消所有事件,此时说明用户只是要移动而不是长按
let gtouchmove = () => {clearTimeout(timeOutEvent); //清除定时器timeOutEvent = 0
}
//真正长按后应该执行的内容
let longPress = () => {timeOutEvent = 0;// 创建一个链接元素const link = document.createElement("a");// 将Canvas转换为数据URLconst dataURL = canvas.value.toDataURL();// 设置链接的href属性为数据URLlink.href = dataURL;// 设置链接的下载属性和文件名link.download = "canvas_image.png";// 模拟点击链接进行下载link.click();
}
</script><style scoped></style>
http://www.tj-hxxt.cn/news/31461.html

相关文章:

  • 英文 科技网站seo外包 靠谱
  • wordpress锚点插件肇庆seo按天收费
  • 上海网站建设哪家企业北京seo供应商
  • 云南网站建设方案网络整合营销理论
  • 网站建设功能模块图谷歌海外推广
  • 个人商城网站备案站长工具seo综合查询源码
  • 小网站备案域名查询网站入口
  • cms网站开发涉及的知识seo整站怎么优化
  • 湖北搜索引擎优化网站seo优化软件
  • 镇江个人网站建设360推广开户
  • 工业互联网平台应用seo的作用有哪些
  • 网站建设运营期末考试快速网站推广公司
  • 路由器做php网站电商培训有用吗
  • 网站301做排名厦门网络关键词排名
  • 自己做网站 需要会什么6制作app平台需要多少钱
  • 北京seo网站太原seo排名收费
  • 网站底部备案号免费推广网站有哪些
  • 网站建设与推广是什么朝阳seo
  • 什么是模板网站全国疫情又严重了
  • 手机怎么制作图片搜索引擎优化的英语简称
  • wordpress 页面生成器网站seo李守洪排名大师
  • 壁纸公司网站源码seo概念
  • 哪个网站的课件做的好处seo网站优化培训厂家报价
  • 南通公司快速建站帮人推广的平台
  • 微信如何绑定网站阿里云万网域名注册
  • 绵阳网站推广排名seo网站推广工作内容
  • 网站建站免费百度引擎搜索引擎
  • 网站怎么做谷歌权重汕头网站推广
  • wordpress 主题 搜索百度seo优化按年收费
  • 做网站公司做网站公司有哪些800元做小程序网站