canvas元素

怎样判断浏览器是否支持canvas

点点圈 提交于 2019-11-30 06:29:27
1. 如果网页必须使用canvas, 则需要告知用户更换或更新浏览器. 这时可以通过在<canvas>标签之间添加替代元素进行 <canvas id="c1"> 您的浏览器不支持canvas, 请更换或更新浏览器</canvas> <canvas id="c1"> <img src="/canvasError.jpg" /> </canvas> 2. 如果对不支持canvas的浏览器提供第二套方案, 或者行为逻辑, 则需要在js脚本中判断浏览器是否支持canvas. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <canvas id="c1" width="300" height="300"></canvas> <script> function draw(canvasElement){ // 判断canvas节点是否具有getContext方法, 如果没有, 则说明浏览器不支持canvas if (!canvasElement.getContext) return; var ctx = canvasElement.getContext("2d"); // code begin } var canvasElement =

HTML5☞canvas

一曲冷凌霜 提交于 2019-11-29 23:49:29
<canvas>便签用于绘制图像,图表。不过,<canvas> 元素本身并没有绘制能力(它仅仅是图形的容器) - 您必须使用脚本JavaScript来完成实际的绘图任务。既然你要画出你想要的图案,你给有画布啊,总不能在空气中画画啊,所以第一步你要创建一个画布,给画布一个宽高能装下你的画。 <canvas width="500" height="500" id="canvas"></canvas>。 canvas开始标签和结束便签可以填充内容 ,填充的内容是后备信息 , 如果浏览器不支持canvas元素,就会显示这个后备信息。因为是js控制,所以在脚本语言获取这个元素。 var Canvas = document.getElementById('canvas'); 画布创建好了,要在这个画布上绘图,就须取得 绘图上下文。 而取得绘图上下文的对象引用,需调用 getContext() 方法并传入上下文的名字,传入‘2d’,就可以取得2D上下文对象。 在使用canvas之前,首先要检测getContext()方法是否存在。 这一步非常重要。 if(canvas.getContext ){   var context = canvas.getContext("2d");   context . strokeStyle = "red";   context . fillStyle =

讲解开源项目:让你成为灵魂画手的 JS 引擎:Zdog

旧街凉风 提交于 2019-11-29 23:24:42
本文作者:HelloGitHub- kalifun HelloGitHub 的《讲解开源项目》系列,项目地址:https://github.com/HelloGitHub-Team/Article 今天给大家推荐一个使用 JavaScript 语言编写的开源 Web 3D 模型项目 —— Zdog。 一、介绍 1.1 Zdog Zdog 项目地址:https://github.com/metafizzy/zdog Tips: 本文出现的所有作品都是通过 Zdog 完成的。 圆形、扁平、设计师友好用于 canvas 和 SVG 的伪 3D 引擎。 使用 Zdog 您可以在 Web 上设计和渲染简单的 3D 模型。Zdog 是一个伪 3D 引擎。它的几何形状存在于 3D 空间中,但呈现为扁平形状,这使 Zdog 特别。 1.2 Zdog 特点 体积小:整个库只有 2100 行代码,最小体积为 28 KB。 图形圆滑:所有的圆形都呈现为圆边,没有多边形锯齿。 使用友好:使用 API 完成建模。 二、方法介绍 解释说明均在代码中以注释方式展示,请大家注意阅读。 2.1 初始静态演示 让我们进入一个基本的非动画演示。 静态演示只需要在画布上将想要绘画的图像渲染出来就可以了。 // Illustration是顶级类,用于处理<canvas>或<svg>元素,保存场景中的所有形状

浏览器调起摄像头(jquery+layui)

☆樱花仙子☆ 提交于 2019-11-29 03:25:01
/* 实例化camvas配置参数 config = { video:{width:Number(scale*4),height:Number(scale*3)},//视频比例4:3 canvasId:'canvas',//画布canvas节点ID videoId:'v',//video节点ID imgType:'png',//图片类型,/png|jpeg|bmp|gif/ quality:'1' //图片质量0-1之间 } */ window.URL = window.URL || window.webkitURL||window.mozURL || window.msURL; navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia window.requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.msRequestAnimationFrame ||

html2canvas+Canvas2Image分享海报功能踩坑

大兔子大兔子 提交于 2019-11-28 20:05:59
首先需要 import html2canvas from 'html2canvas'; import {Canvas2Image} from '../../assets/js/plug/canvas2image.js'; getBase64Image(data) { let that = this; var canvas = document.createElement("canvas"); canvas.width = $(data.dom).width(); canvas.height = $(data.dom).height(); var ctx = canvas.getContext("2d"); ctx.drawImage(data.img, 0, 0, $(data.dom).width(), $(data.dom).height()); let newImg = Canvas2Image.convertToImage(canvas, canvas.width, canvas.height); if(data.type == 1){ that[data.dataName] = newImg.src; }else if(data.type == 2){ that[data.dataDom][data.num].isbase = 1; that[data.dataDom]

javascript学习目录

a 夏天 提交于 2019-11-28 17:54:19
前面的话   javascript是一门充满活力、简单易用的语言,又是一门具有许多复杂微妙技术的语言。即使是经验丰富的javascript开发者,如果没有认真学习的话,也无法真正理解它们,这就是javascript的矛盾之处。由于javascript不必理解就可以使用,因此通常来说很难真正理解语言本身,这就是我们面临的挑战。不满足于只是让代码正常工作,而是想要弄清楚为什么,勇于挑战这条崎岖颠簸的少有人走的路,拥抱整个javascript   纷繁复杂的库,大多都以javascript为基础。实际上,前端工程师很大程度上指javascript工程师。前端入门容易精通难,说的是前端,更指的是javascript。如果把掌握HTML和CSS作为进入”前端大学“的高中知识贮备,那么javascript就是”前端大学“的主修课程,如何在”毕业“后成功开启自己的前端人生,要看javascript知识学得深不深,理解得透彻不透彻,所以在javascript上投入多少时间都不为过   小火柴将javascript的知识体系进行了梳理和归纳,总结成以下目录 ECMA 基础语法 【基础】    词法结构    变量和标识符    属性和变量    表达式    严格模式    内存管理及垃圾回收    动态脚本 【运算符】    运算符语法概述       算术运算符    关系运算符   

【基础知识】HTML5 Canvas核心技术(图形、动画与游戏开发):精灵表坐标查看器(详细教程)

雨燕双飞 提交于 2019-11-28 00:48:29
目录 项目介绍 项目演示 详细步骤 项目介绍 本项目是 精灵表(sprite sheet)坐标查看器 。 精灵表指的是一张包涵许多动画图像的图片,在动画的播放过程中,每次都要在精灵表中选取一张图像显示出来,这就意味着你必须知道精灵表中每张图像的精确坐标。 项目演示 https://827652549.github.io/Canvas/Unit1/Listener/SpriteSheets.html 详细步骤 所有的细节都以注释形式写在了代码之中。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>精灵表坐标查看器Sprite Sheets</title> <style> body{ background: #dddddd; } #canvas { position: absolute; left: 0px; top: 50px; margin: 20px; background: #ffffff; border: thin inset rgba(100,150,230,0.5); cursor: pointer; } #readout { margin-top: 10px; margin-left: 15px; color: blue; } </style> </head> <body> <!

相识HTML5 canvas

风格不统一 提交于 2019-11-28 00:40:00
Canvas是HTML的API,我们可以用它在网页中实时的来生成图像。 文章导读   1.必备技能   2.用于画图的函数     例子:       -会话气泡- -心形- -钟表-  -星球里的星星-       -调色板- -鼠标绘图- -旋转的小方块-   3.图像的处理     例子:       -图像的灰度和翻转效果- -拾色器-       -放大镜- -图像的高斯模糊-     一.必备技能 <canvas id="Canvas" width="400" height="200"> 不支持canvas的浏览器,你就会看到这句话! </canvas> 控制它的宽高是要写在行内样式中的,像上面那样。这样我们就有了一个canvas元素,然后我们就可以去操作它了: var canvas = document.getElementById('Canvas'); if (canvas.getContext) { var content = canvas.getContext('2d'); } 获取元素的同时,还要获取canvas的2D绘图环境。要是用于3D绘图的话,就要用WebGL了。 二.用于画图的函数 然后,我们要开始在画布上绘图了。它的画布是这样的网格: 2.1矩形 canvas中只支持这一种形状的函数,别的形状就都要自己组合来实现了。 fillRect(x, y,

十分钟实现灭霸打响指灰飞烟灭的效果

≡放荡痞女 提交于 2019-11-27 22:04:49
看过复仇者联盟的都知道,灭霸作为计划生育政策的坚定支持者和执行者,一个响指清除了宇宙中二分之一的生命。电影中被清除的生命灰飞烟灭的镜头很是酷炫,所以在复联4上映后,那个不存在的网站google,推出了一个彩蛋,如果在搜索框搜索灭霸,会出现一个手套的按钮,点击后会让网页搜索结果消失一半。 恩~这很谷歌。 效果虽然酷炫但其实并不复杂,这里带着大家一起来实现一下,网上也已经有了一些教程( Thanos Snap Effect JavaScript Tutorial ),这里稍微加点东西,灭霸的响指毕竟是真的打而不是用鼠标点按钮,所以我会加上音量检测,当检测到响指的声音(其实是超过某个音量预值)就触发效果,然后就可以愉快的向朋友装逼了。 源代码地址 准备开始 我们这里只用一个图片元素,HTML结构如下 <body> <div class="content"> <div id="image"> <!-- 图片为网络地址才可在本地通过直接打开html调试 --> <img src="https://i.loli.net/2019/05/06/5ccffa469ec52.jpg" width="400" /> </div> </div> </body> 复制代码 动画的实现 将html转成canvas,为后面处理做准备。这里我们使用html2canvas库