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

建设模板网站中国网络平台排名前十

建设模板网站,中国网络平台排名前十,wordpress文章中写代码,哪里做网站排名实现的思路大概就是#xff0c;先将dom转化为canvas画布#xff0c;再对canvas进行裁切#xff0c;然后通过canvas api生成图片#xff0c;这里用到了一个库html2canvas 效果如图#xff1a; 首先实现框选效果#xff1a; const mousedownEvent (e) {moveX 0;mo… 实现的思路大概就是先将dom转化为canvas画布再对canvas进行裁切然后通过canvas api生成图片这里用到了一个库html2canvas 效果如图 首先实现框选效果 const mousedownEvent (e) {moveX 0;moveY 0;const [startX, startY] [e.clientX, e.clientY];x startX - viewer.getBoundingClientRect().left;y startY - viewer.getBoundingClientRect().top;const divDom document.createElement(div);divDom.id screenshot;divDom.width 1px;divDom.height 1px;divDom.style.position absolute;divDom.style.top y px;divDom.style.left x px;const closeIcon document.createElement(span);closeIcon.className outline-close-icon;closeIcon.textContent x;divDom.appendChild(closeIcon);closeIcon.addEventListener(click, () {divDom.remove();});// document.body.appendChild(divDom)viewer.appendChild(divDom);const moveEvent (e) {moveX e.clientX - startX;moveY e.clientY - startY;if (moveX 0) {divDom.style.width moveX px;} else {divDom.style.width -moveX px;divDom.style.left e.clientX - viewer.getBoundingClientRect().left px;}if (moveY 0) {divDom.style.height moveY px;} else {divDom.style.height -moveY px;divDom.style.top e.clientY - viewer.getBoundingClientRect().top px;}};window.addEventListener(mousemove, moveEvent);window.addEventListener(mouseup, () {window.removeEventListener(mousemove, moveEvent);window.removeEventListener(mousedown, mousedownEvent);document.querySelector(body).style.cursor default;}); }; window.addEventListener(mousedown, mousedownEvent);全码 const viewer document.getElementById(viewer); let canvas; document.getElementById(screen-button).addEventListener(click, (e) {// 创建一个canvas画布if (canvas) {canvas.remove();}canvas document.createElement(canvas);canvas.setAttribute(id, bg_canvas);canvas.style.position absolute;canvas.style.zIndex 2;canvas.style.left 0;canvas.style.top 0;canvas.style.width 100%;canvas.style.height 100%;viewer.appendChild(canvas);document.querySelector(body).style.cursor crosshair;let moveX;let moveY;let x;let y;const mousedownEvent (e) {moveX 0;moveY 0;const [startX, startY] [e.clientX, e.clientY];x startX - viewer.getBoundingClientRect().left;y startY - viewer.getBoundingClientRect().top;const divDom document.createElement(div);divDom.id screenshot;divDom.width 1px;divDom.height 1px;divDom.style.position absolute;divDom.style.top y px;divDom.style.left x px;const closeIcon document.createElement(span);closeIcon.className outline-close-icon;closeIcon.textContent x;divDom.appendChild(closeIcon);closeIcon.addEventListener(click, () {divDom.remove();});// document.body.appendChild(divDom)viewer.appendChild(divDom);const moveEvent (e) {moveX e.clientX - startX;moveY e.clientY - startY;if (moveX 0) {divDom.style.width moveX px;} else {divDom.style.width -moveX px;divDom.style.left e.clientX - viewer.getBoundingClientRect().left px;}if (moveY 0) {divDom.style.height moveY px;} else {divDom.style.height -moveY px;divDom.style.top e.clientY - viewer.getBoundingClientRect().top px;}};window.addEventListener(mousemove, moveEvent);window.addEventListener(mouseup, () {window.removeEventListener(mousemove, moveEvent);window.removeEventListener(mousedown, mousedownEvent);document.querySelector(body).style.cursor default;if (!moveX) {return;}// 把body转成canvashtml2canvas(viewer, {scale: 1,// allowTaint: true,useCORS: true //跨域使用}).then(canvas2 {let capture_x, capture_y;let width moveX;let height moveY;if (width 0) {//从左往右画capture_x startX - canvas.getBoundingClientRect().left 1;} else {//从右往左画capture_x x width 1;}if (height 0) {//从上往下画capture_y y 1;} else {//从下往上画capture_y y height 1;}printClip(canvas2, capture_x, capture_y, Math.abs(width), Math.abs(height));moveX 0;canvas.remove();});});};window.addEventListener(mousedown, mousedownEvent); });/*** 打印截取区域* param canvas 截取的canvas* param capture_x 截取的起点x* param capture_y 截取的起点y* param capture_width 截取的起点宽* param capture_height 截取的起点高*/ async function printClip(canvas2, capture_x, capture_y, capture_width, capture_height) {// 创建一个用于截取的canvasconst clipCanvas document.createElement(canvas);clipCanvas.width capture_width;clipCanvas.height capture_height;// 截取clipCanvas.getContext(2d).drawImage(canvas2, capture_x, capture_y, capture_width, capture_height, 0, 0, capture_width, capture_height);const clipImgBase64 clipCanvas.toDataURL();// console.log(clipImgBase64-, clipImgBase64);// console.log(clipImgBase64-, clipImgBase64.replace(/^data:image\/\w;base64,/, ));const obj {// file: new File([this.blob],main.audio,{ type: audio/mp3 })file: new File([base64ToBlob(clipImgBase64.replace(/^data:image\/\w;base64,/, ), image/png)], test.png, { type: image/png })};// 生成图片// var clipImg new Image()// clipImg.src clipImgBase64downloadIamge(clipImgBase64) }/*** 下载保存图片* param imgUrl 图片地址*/ function downloadIamge(imgUrl) {// 生成一个a元素const a document.createElement(a);// 创建一个单击事件const event new MouseEvent(click);// 生成文件名称const timestamp new Date().getTime();const name imgUrl.substring(22, 30) timestamp .png;a.download name;// 将生成的URL设置为a.href属性a.href imgUrl;// 触发a的单击事件 开始下载a.dispatchEvent(event); }// 将Base64编码转换为Blob对象 function base64ToBlob(base64, type) {const byteCharacters atob(base64);const byteArrays [];for (let offset 0; offset byteCharacters.length; offset 512) {let slice byteCharacters.slice(offset, offset 512);let byteNumbers new Array(slice.length);for (let i 0; i slice.length; i) {byteNumbers[i] slice.charCodeAt(i);}let byteArray new Uint8Array(byteNumbers);byteArrays.push(byteArray);}let blob new Blob(byteArrays, { type: type });return blob; } 坑 如果生成图片样式有问题 html就用内联样式当截图片的时候如果不识别 就将图片url转化为base64
http://www.hkea.cn/news/14400553/

相关文章:

  • 住建局官网网站网站快速推广排名技巧
  • 摄影图片素材网站商务网站信息审核的重要性在于
  • 网站建设评语wordpress2014
  • 毕业设计购物网站开发的意义wordpress 个人简介栏
  • 建自己的网站wordpress发文章
  • 2016网站设计免费ppt模板的网站
  • 哪个网站可以接加工单泰安范镇孟庄村
  • 东营网站建设铭盛信息做视频网站 视频放在哪里找
  • 如何检测网站被搜索引擎惩罚了桂林市天气预报7天
  • 衡水网站建设知识呼市做网站
  • 临邑建设局网站冠县网站制作
  • wordpress怎样做单页网站不用域名做自己的网站
  • 局域网内部网站建设app做旅游游客产品的网站
  • 关于网页设计的教育网站设计软件 开发 公司
  • 南山网站 建设seo信科网站运营代理
  • 网站优化毕业设计网站建设的法律依据
  • 网站设计示例湖北企业网站建设公司
  • 网站文章突然不收录完全自建网站
  • 舟山市建设工程质量监督站网站网站可信查验
  • 专业直播网站开发淘宝网站建设的缺点
  • 在哪里可以做网站wordpress4.5发布模块
  • 网站建设费的分录怎么写电子商务网站建设的定义
  • 苏州网站制作施工企业怎样报考a证
  • 教育网站图片wordpress显示阅读量
  • 网站制作方案专业乐云seo关于网站建设的文案
  • 学了3个月ui好找工作吗东莞百度快照优化排名
  • 网站如何做下载链接如何建开发手机网站
  • 龙岗做网站的建设法规 课程网站
  • 上海自助建站上海网站建设网站搭建工作怎么样
  • 晋中建设集团网站大型网站系统