快捷搜索:

html 基于 canvas 实现的一个截图小demo

html基于canvas实现的一个截图小demo

  记得以前在人人上看到一个分享,讲解基于js的截图方案,详细的不记得了,只记得还挺有意思的貌似用了canvas?所以这次打算自己写一个分享给大家作者的思路。这只是一个很简陋的小demo如有bug请提issues。按照惯例po代码地址。

  由于快捷键可能导致的冲突故希望开始快捷键可以不限定快捷键数量asp学习,所以在第一个参数中采用了数组的形式进行传递。

  如果采用原生的方法可以参照MDN下对于在canvas中绘制DOM的介绍。里面最棘手的地方是你需要创建一个包含XML的SVG图像涉及到的元素为<foreignObject>。如何能计算出当前浏览器显示的DOM并且将其提取出来其实是最繁琐的。好的其实作者也没有好的思路手动实现一个=。=,所以选择了这个html2canvas库来完成这件事。大致调用方式如下:

  这个地方的实现本来打算使用原生canvasAPI,但是里面涉及到一个问题就是在鼠标按下开始拖拽后,canvas要实时绘制,这里面就要引出一个类似于PS图层的概念,每当mousemove的时候都画出一个当前的截图框,但是当下一次触发mousemove的时候就删掉上一个截图框。以此来模拟实时的绘制过程。无奈作者没有找到使用canvas原生API的方法,如果有的话一定告诉我如何对画出的图做出标记。在这里作者使用了一个基于Jq的canvas的库叫做Jcanvas,里面给出了图层的概念,即在一个图层上只能画一张图,同时可以给图层标记名称。这就满足了作者的需求,实现如下:

  文中最恶心的地方(DOM写入canvas、canvas设置图层)分别采用了两个库来进行实现,后续作者还会陆续关注如何使用原生API来实现这些操作,虽然个人认为自己写还是有点。。

  HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。其中 POST 一般用来向服务端提交数据,本文主要讨论 POST 提交数据的几种方式。我们知道,HTTP 协议是以 ASCII...查看详情

  HTML的发展历史:HTML英语意思是Hypertext Marked Language,即超文本标记语言,是一种用来制作超文本文档的简单标记语言。HTML是由WEB的发明者Tim Berners-Lee和同事nolly于1990年...查看详情

  一、<div></div>和<span></span>1.<div></div>标签<div></div>标签可定义文档中的分区或节(division/section),从而把文档分割...查看详情

  简介最近在做大作业的时候需要做一个弹幕播放器。借鉴了一下别人的源码自己重新实现了一个,演示如下主要的功能有发送弹幕设置弹幕的颜色,速度和类型显示弹幕已知缺陷:不能全屏canvas没有做自适应没有自定义播放器控件没有根据播放时间显示相应的弹幕弹幕不能实现悬停...查看详情

  name指定标签的名称。格式<input type="text" name="username" />应用场景①form表单:name可作为转递给服务器表单列表的变量名;如上面的传到服务器的名称为:username=text的...查看详情

  <input>标签<input> 标签用于搜集用户信息。type属性根据不同的 type 属性值,输入字段拥有很多种形式。可以是文本字段、复选框、掩码后的文本控件、单选按钮、按钮等等。text:文本区域readonly属性:是否只读。passwor...查看详情

  简介meta标签是HTML语言HEAD区的一个辅助性标签。meta常用于定义页面的说明,关键字,最后修改日期,和其它的元数据。这些元数据将服务于浏览器(如何布局或重载页面),搜索引擎和其它网络服务。mata 标签包含全局属性(查看详情

  前言meta是html语言head区的一个辅助性标签。也许你认为这些代码可有可无。其实如果你能够用好meta标签,会给你带来意想不到的效果,meta标签的作用有:搜索引擎优化(SEO),定义页面使用语言,自动刷新并指向新的页面,实现网页转换时的动态效果,控制页面缓冲,网页定级评价...查看详情

  XML/HTML Code复制内容到剪贴板 <inputid="username"name="username"type="text"placeholder=&...查看详情如何修改asp代码asp代码编写

您可能还会对下面的文章感兴趣: