首页
学习
活动
专区
圈层
工具
发布

实现Web端自定义截屏(原生JS版)

经过一番考虑后,我决定用原生js来重构这个插件,让其不依赖任何库,这样它就能运行在任意一台支持js的设备上,本文就跟大家分享下我重构这个插件的过程,欢迎各位感兴趣的开发者阅读本文。...运行结果视频: 写在前面 本文不讲解插件的具体实现思路,对插件实现思路感兴趣的开发者请移步:实现Web端自定义截屏 搭建开发环境 我想使用ts、scss、eslint、prettier来提升插件的可维护性...部分实现代码如下,完整代码请移步:CreateDom.ts import toolbar from "@/lib/config/Toolbar"; import { toolbarType } from...部分代码如下,完整代码请移步:main.ts import CreateDom from "@/lib/main-entrance/CreateDom"; // 导入截图所需样式 import "@/assets...tracks.forEach(track => track.stop()); this.videoController.srcObject = null; } }; // 截屏

3.8K31

js截屏以及three.js场景截屏

来来来,说正事 在手机端截屏完全不需要前端动什么脑子,但是在网页上截屏就很头疼了,我这里介绍两种情形,针对普遍和某一特殊功能需求 1、js截屏插件html2canvas.js 这个插件真的很好用,而且GitHub... js: html2canvas(document.querySelector("#capture")).then(canvas => { document.body.appendChild...(canvas) }); 2、js原生代码截屏 如果你只是要截取canvas里面的内容,那就很简单了。...因为canvas原生的有toDataURL方法,可直接将选中的canvas转变为base64编码。因为我是用在three.js这个3d项目的场景里面,所以没用过这个库的朋友可能没遇到过bug。...那就是截屏出来的图片是空白的,场景scene后期渲染的比如灯光,加载的模型都没有截图截下来。

10.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    原生 canvas 如何实现大屏?

    前言 可视化大屏该如何做?有可能一天完成吗?废话不多说,直接看效果,线上 Demo 地址 lxfu1.github.io/large-scree…。...如何用 canvas 绘制各种图表,如何实现 canvas 动画 如何自动化部署自己的大屏网站 实现 项目基于 Create React App --template typescript搭建,包管理工具使用的...缺点:兼容性,基于 proxy 开发,对低版本浏览器不友好,当然,大屏应该也不会考虑 IE 这类浏览器。...代码位于 src/utils/cache interface CacheNode { /** * 节点状态 * - 0:未执行 * - 1:已执行 * - 2:出错...单测 这里不想多说,大家可以运行 pnpm test看看效果,环境已经搭建好;由于项目里面用到了 canvas 所以需要 mock 一些环境,这里的 mock 可以理解为“我们前端代码跑在浏览器里运行,

    1.1K20

    使用 Unity 来实现 iOS 原生弹框

    目标 本文的主要的目标是帮助你使用 Unity 创建 iOS 原生弹框。 你会得到的最终效果如下图 ? ? ? ? 你想要遵循 iOS 的标准来显示弹框吗?...你想要从 Unity 中显示原生的弹框来提高用户体验吗? 如果你有这些疑虑,那么现在你来对地方了。在这篇博客中,我将使用 Unity 创建 iOS 原生弹框。...为三个弹框创建三个按钮 ? 第三步 创建脚本然后分配所有按钮的引用 创建一个脚本然后给它命名。我命名为 PopupView.cs ,现在让我们在代码中添加一个按钮点击的监听事件。...第六步 设置 iOS 文件 你完成了基本的代码!现在,让我们用 Objective-C 编码来创建弹框 这样做,创建新的 xcode 工程来创建 Objective-C 文件。...如果你对 iOS 原生弹框有任何问题或疑惑,那么请自由地在评论区发表评论。我一定会尽快回复你。有一个游戏开发的想法么?你还在等什么?现在就联系我们吧,不久你就会看到你的想法实现了。

    2.7K30

    滚动穿透的6种解决方案【已自测】

    赠送一套自定义手势滚动效果的代码哦~ 一、body无滚动 + 弹层无滚动[css-超出隐藏] 适用场景需满足以下条件:     1、body最好是一屏、无滚动     2、虽然body内容超出一屏需滚动...关键代码: ps:我偷懒直接js控制了行间样式,但标准写法应该是给body添加类名来控制 局限问题: body滚动后再触发弹层,会使body页面回滚到顶部。...关键代码: JS控制弹窗的交互、body的禁止滚动 css添加弹层的超出滚动效果 局限问题: 弹层中内容滚动到顶部或底部后,还会连带页面body一起滚动。也就是还会发生穿透效果。...在前边代码的基础上,通过css单纯的设置一下纵轴的超出滚动。 overflow-y: scroll; 只有这一句滚动效果不太好,没有原生滚动流畅。...我这里为了代码可读性,分开写了: 完整代码: 出现弹窗时: 隐藏弹窗时: 五、body滚动 + 弹层内部滚动[js-代码模拟上下滑动手势效果] 我想,既然我们监控弹层、监控touchY那么辛苦了已经,还差再辛苦一点

    15.4K31

    原生js的笔记

    console.time(“名字”) 代码 console.timeEnd(“名字”) 控制台计时, 可以控制台输出代码运行的事件,用来检测代码消耗浏览器资源的多少。...引入Javascript 的方式有三种 1.在html 中直接放到 2.外部引入js文件 3.在标签直接写 <p...2、以驼峰命名规则 ——开始单词小写 后面的单词首字母大写 例如 helloWorld boyAge suZiXing 保留字 js中大小写严格区分的 alert弹框 String() 保留字不能用于普通表示符...用{}分组之后叫代码块。...全局作用域: 在js中作用域: 一个变量作用的范围 1、全局作用域(整个 标签中): 页面打开全局作用域被打开,页面关闭全局作用域被销毁; 全局作用域的变量叫全局变量,全部变量可以在全局作用域中使用

    1.7K10

    三连弹!原生实现异步处理利器 —— Observable

    ---- 本篇译自:https://javascript.plainenglish.io/how-to-use-observables-with-vanilla-javascript 接上两篇: 《Js...,Callback=>Promise=>Observer》 《继续解惑,异步处理 —— RxJS Observable》 我们认识了 ES7 处理异步的一大利器 —— Observable 本篇带来用原生实现...~ ---- 代码实现: Subscription let Subscription = function(handlerId, unsubscribeNotificationCallback) {...这一点,在前面一篇函数式编程中也讲过:《XDM,JS如何函数式编程?看这就够了!(六)》 —— 减少时间状态! 不得不说,都是相通的~~ Σ(⊙▽⊙"a ---- OK,就是这样!...这就是用原生模拟 Observable 的实现过程! 撰文不易,点赞鼓励 我是掘金安东尼,公众号同名,日拱一卒、日掘一金,再会~

    64230
    领券