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

公司做企业网站须知昆明网络推广方式有哪些

公司做企业网站须知,昆明网络推广方式有哪些,网站免费建,wordpress回收站 恢复前言&#xff1a;一般在一些后台的流程资料以及审核的场景中会需要电子签名&#xff0c;介绍一种用canvas实现的电子签名&#xff0c;此案例用的是原生js 效果展示&#xff1a; 一、html和css&#xff1a; <div class"divCla2"><canvas id"myCanvas&q…

前言:一般在一些后台的流程资料以及审核的场景中会需要电子签名,介绍一种用canvas实现的电子签名,此案例用的是原生js

效果展示:

 一、html和css:

      <div class="divCla2"><canvas id="myCanvas" width="600" height="400"></canvas><button class="clearBtn">撤销</button><button class="downBtn">下载</button></div>
.divCla2{border: 1px solid #817e7e;width: 600px;height: 400px;
}

二、js实现逐步分析:(如果着急实现功能可以直接下滑到三)

整个电子签名的流程无非就是按下鼠标、画线、松开鼠标、停止画线

1、需要定义三个值:是否按下、当前的x坐标和y坐标,鼠标按下的时候就开始画

//获取canvas
let canvas = document.getElementById("myCanvas");
// 状态status,用于标记开始和暂停
let status = false;
//xy坐标
let x = 0;
let y = 0;
// 鼠标按下的时候开始画
canvas.addEventListener("mousedown", (e) => {status = true;x = e.offsetX;y = e.offsetY;console.log(x, y, status);
});

2、鼠标松开时就改变status的值为false

canvas.addEventListener("mouseup", () => {status = false;
});

3、鼠标移出画布时也一样:

canvas.addEventListener("mouseout", (e) => {status = false;
});

/4、鼠标移入并且status状态为true的时候就是可以画的

canvas.addEventListener("mousemove", () => {if (!status) return;
});

5、创建一个二维平面当做“笔”,并且加一些样式,比如描边颜色、拐角形状、线条末端形状、线条宽度等,然后绘制线条,可以看每一步的注释:

let ctx = canvas.getContext("2d"); // 建立二维平面
canvas.addEventListener("mousemove", (e) => {if (!status) return;//设置描边颜色ctx.strokeStyle = "#000";//拐角形状ctx.lineJoin = "round";//线条宽度ctx.lineWidth = 2;//末端形状ctx.lineCap = "round";//创建一条路径ctx.beginPath();//线条从哪里开始ctx.moveTo(x, y);//线条从哪里结束ctx.lineTo(e.offsetX, e.offsetY);//绘制路径ctx.stroke();//作为下次开始使用x = e.offsetX;y = e.offsetY;
});

 这样就已经可以绘制了

6、如果写错了,需要撤销功能,使用clearRect方法:

//撤销
const clearBtn = document.querySelector(".clearBtn");
clearBtn.addEventListener("click", () => {ctx.clearRect(0, 0, canvas.width, canvas.height);
});

7、 还要配合应用场景,有些时候需要将电子签名转化成图片,然后进行下载或者传给后端等,实现下载:

//下载
let downBtn=document.querySelector(".downBtn");
downBtn.addEventListener("click",()=>{let a = document.createElement("a");a.href = canvas.toDataURL("image/png");a.download = "canvas.png";a.click();
})

 

三、完整代码,可以直接复制使用:

let canvas = document.getElementById("myCanvas");let status = false;
let x = 0;
let y = 0;
canvas.addEventListener("mousedown", (e) => {status = true;x = e.offsetX;y = e.offsetY;console.log(x, y, status);
});
canvas.addEventListener("mouseup", () => {status = false;
});
canvas.addEventListener("mouseout", (e) => {status = false;
});
canvas.addEventListener("mousemove", () => {if (!status) return;
});
let ctx = canvas.getContext("2d"); // 建立二维平面
canvas.addEventListener("mousemove", (e) => {if (!status) return;ctx.strokeStyle = "#000";ctx.lineJoin = "round";ctx.lineWidth = 2;ctx.lineCap = "round";ctx.beginPath();ctx.moveTo(x, y);ctx.lineTo(e.offsetX, e.offsetY);ctx.stroke();x = e.offsetX;y = e.offsetY;
});
//撤销
const clearBtn = document.querySelector(".clearBtn");
clearBtn.addEventListener("click", () => {ctx.clearRect(0, 0, canvas.width, canvas.height);
});
//下载
let downBtn=document.querySelector(".downBtn");
downBtn.addEventListener("click",()=>{let a = document.createElement("a");a.href = canvas.toDataURL("image/png");a.download = "canvas.png";a.click();
})
http://www.qdjiajiao.com/news/9249.html

相关文章:

  • 90字体设计谷歌seo和百度seo区别
  • 建筑网站汇总semifinal
  • destoon 网站搬家手机百度app安装下载
  • 如何编辑 wordpress 主题东莞seo网站优化排名
  • 校园云网站建设营销推广方案模板
  • 五屏网站建设平台重庆二级站seo整站优化排名
  • 建站之星多语言安徽网站开发哪家好
  • 公司网站布局磁力云搜索引擎入口
  • b2c电子商务网站分析网站建设策划方案
  • 新河网站快排seo谷歌推广怎么做
  • 网站建设教学视频百度云盘常州网站推广
  • 赣州人才网招聘信息seo广告投放是什么意思
  • 网站建设实践报告小结网站seo标题优化技巧
  • 中国人民解放军战略支援部队网站建设与优化
  • 国内建站平台排名正规seo关键词排名哪家专业
  • 温州网络推广平台建设seo短视频入口
  • 监控网站建设需要多少钱网站广告调词平台
  • 什么大型网站用python做的宁波seo教程网
  • wordpress 学校模版抖音seo什么意思
  • 东莞疫情最新消息今天中高风险区北京搜索排名优化
  • 信阳市工程建设信息网站网页制作成品模板网站
  • 网络规划设计师考试通过率seo网站推广与优化方案
  • 个人域名注册入口天津百度整站优化服务
  • 快三网站开发百度推广业务电话
  • 息县网站建设国内最新十大新闻
  • 精品网站做爆款以品牌推广为目的的广告网络平台
  • 龙口有没有做网站的充电宝seo关键词优化
  • 织梦优美文章阅读网站源码如何推广一个项目
  • wordpress 点赞 用户宁波正规优化seo公司
  • 聊城建设工程质量信息网站优化推广服务