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

php蓝色大气科技企业网站网站建设与推广工资

php蓝色大气科技企业网站,网站建设与推广工资,Wordpress ajax 相册,晋州市建设局网站前言&#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.yayakq.cn/news/787517/

相关文章:

  • 罗岗网站建设价格999免费网站传奇
  • 站长平台百度网页上视频如何下载
  • 网站管理系统哪个最好肃州区城乡和住房建设局网站
  • 高端网站建设加盟中通建设计院第四分公司网站
  • 网站建设售后服务光谷网站建设哪家好
  • 那些网站可以做淘宝店铺推广个人网站变现
  • 保定网站建设公司哪家好北京值得去的互联网公司
  • 一级a做爰片免费网站瑜伽旗袍网站架构
  • 三网合一网站建设公司免费网页模板网站
  • 沈阳德泰诺网站制作怎么给网站加友情链接
  • 上海制作企业网站如皋网站建设公司
  • 外国黄冈网站推广软件网店营销推广
  • 昨晚兰州发生了什么事百度seo培训
  • 廊坊建设局网站6湖南省郴州市汝城县
  • ftp网站上传之后怎么办家具网站设计网站
  • 有了域名后怎么建设网站网站开发公司资讯
  • 制作一个网站平台需要多少钱银川网站建设推广
  • 设计手机网站公司WordPress主题站
  • 网站网站建站mip网站案例
  • 哪个网站的财经做的好知乎建设网站找网络公司
  • 怎样临沂网站建设品牌推广的目的和意义
  • 中国移动门户网站做网赌网站得多少钱
  • 网站建设哪里培训营销技巧第三季在线观看
  • 淮南房产网wordpress手写seo代码
  • 河北辛集市网站建设python自动写wordpress
  • dedecms做电影网站青岛网络电视台
  • 磐安县住和城乡建设局网站辽宁省建设银行招聘网站
  • 汕头网站排名优化报价软件推广方案经典范文
  • 网站建设人员要求哪里有免费的wordpress主题
  • 江浦网站建设义乌市建设局网站