html5 canvas代替flash,替代Flash技术最好的选择------HTML5
关键词:视频处理、音频处理、Canvas(画布)
一、视频处理
1、基本内容
1.1、使用HTML实现视频处理:
video标签
如果当前浏览器不支持video,可以在veido里面编写提示内
src - 引入视频文件的路径
autoplay - 自动播放视频
2)souce元素
1.2、video支持的视频格式
MP4 - 目前比较主流
OGG - 多用于移动端
WebM - 目前唯一支持超高清格式
1.3、video元素的属性
src - 视频路径
autoplay - 自动播放
controls属性 - 提供视频播放的控制面板,只有属性名,没有属性值
loop - 视频的循环播放
poster属性 - 在视频播放之前,显示一张图片
width/height - 设置显示视频的宽度和高度
preload - 预加载:
auto-(默认值)自动加载
none-不加载
metadata-只加载视频的基本信息(不含视频)
2、高级内容
2.1、 方法
play() - 播放视频
pause() - 暂停视频
load() - 重新加载音频/视频元素
canPlayType() - 判断当前浏览器是否支持指定视频格式
2.2、 事件
onplay - 当视频开始播放时调用
onpause - 当视频开始
onended - 当视频结束时被触发
onerror - 当视频错误时被触发
oncanplay - 当整个媒体可以顺利播放时,就会触发这个事件
oncanplaythrough - 不考虑整体状态,只要下载了一定的可放帧会会触发这个事件
onprogress - 用于更新媒体的下载进度,会周期性的触发
2.3、 属性
paused - 表示判断当前是否暂停,true表示暂停
ended - 表示判断当前视频是否播放完毕,true表示播放完毕
duration - 表示当前视频的时长,单位为s
currentTime - 表示当前视频播放的位置
2.4、 video元素
当video视频全屏时,浏览器会把video放到最前端,图片是有显示的,但被视频覆盖了
利用video事件完成广告效果
bug: 不能全屏
解决方案:
等到HTML5更新
使用video元素提供的高级编程自己实现
使用目前封装好的video的JS库 video.js
3、代码示例
您的浏览器不支持播放该格式视频
var btn = document.getElementById('btn');
btn.onclick = function(){
var video = document.getElementsByTagName('video')[0];
//paused当前视频是否暂停,暂停返回true
if (video.paused) {
video.play();
btn.innerHTML = "暂停";
}else{
video.pause();
btn.innerHTML = "播放";
}
video.onplay = function(){
console.log("====");
}
video.onended = function(){
console.log("++++");
}
}
4、运行结果
Paste_Image.png
二、音频处理
1、 audio元素
第一种:只支持一种音频格式
第二种: 同时引入多个音频格式
2、audio元素支持的音频格式
MP3 - 目前最主流
OGG
WAV
3、代码示例
三、Canvas(画布)
1、基本内容
1.1、 HTML5提供的新元素
1.2、 Canvas在HTML页面提供画布的功能
可以在页面中绘制各种图形
1.3、 canvas绘制的图形与HTML页面无关
无法通过DOM获取绘制的图形
无法为绘制的推行绑定DOM事件
1.4、 只能使用canvas提供的API
1.5、 主要用途
在HTML页面中绘制图标(例如柱状图、饼状图等)
网页游戏 - Flash技术
使用HTML5中的canvas
1.6. 如何使用canvas
1)在HTML页面中定义元素
默认宽度 300*150
效果上类似于div
问题:
定义canvas元素的宽度和高度
style设置-绘制图形被拉伸
属性方式 - 没有任何问题
2)获取元素
3)获取画布对象
getContext("2d");
参数类型是string类型,参数必须是“2d”或“3d”(固定写法)
4)使用Canvas提供的API
context.fileRect(10,10,100,100);
2、高级内容
1、API提供的工具非常广泛,包括创建图形、颜色、文本等
2、矩形
1)绘制实心矩形
fillRect(x,y,width,heigth)
2)绘制空心矩形
strokeRect(x,y,width,heigth)
3)清除指定区域的像素,类似于橡皮擦
clearRect(x,y,width,height)
3.、设置颜色 - 如果在创建图像时,没有指定颜色,那么所有图形都会使用纯黑色
1)声明形状线条的颜色
strokeStyle
2)声明形状内部区域的颜色
fillStyle
3)透明度属性。可以设置画布上图形的透明度
globalAlpha
HTML5的难度
HTML5的核心API相对来讲,都不难
HTML5的案例真正难在逻辑(js代码)
总结:HTML5离不开js
第二阶段js,抓紧复习
个人不建议 - 留级
4、 渐变效果 - canvas支持的渐变效果包括线性渐变或射线渐变,并且支持颜色转折点
1)在画布上创建一个渐变对象
var grd = context.createLinearGradient(x1,y1,x2,y2)
x1,y1 - 基准线的起点坐标值
x2,y2 - 基准线的终点坐标值
var grd = context.createRadialGradient(x1,y1,r1,x2,y2,r2)
x1,y1 - 第一个基准圆的元素坐标值
r1 - 第一个基准圆的半径
x2,y2,r2同上
返回一个渐变对象
2)给渐变对象指定渐变颜色值
addColorStop(position,color)
position - 指设置渐变颜色的位置(0-1)
3) 将渐变对象作为画布对象的颜色
context.fillStyle = grd;
4) 绘制矩形
context.fillRect(0,0,400,400);
5、代码示例
var canvas = document.getElementsByTagName('canvas')[0];
var context = canvas.getContext("2d");
function myCanvas() {
var r = Math.floor(Math.random()*256);
var g = Math.floor(Math.random()*256);
var b = Math.floor(Math.random()*256);
const WIDTH = canvas.width;
const HEIGHT = canvas.height;
var x = Math.random()*WIDTH;
var y = Math.random()*HEIGHT;
var width = Math.random()*WIDTH;
var height = Math.random()*HEIGHT;
//让图形生成在canvas里
if((x+width)>=WIDTH){
//重新生成
x = Math.random()*WIDTH;
width = Math.random()*WIDTH;
}
if((y+height)>=height){
y = Math.random()*height;
height = Math.random()*height;
}
context.strokeStyle = "rgb("+r+","+g+","+b+")";
context.strokeRect(x,y,width,height);
}
setInterval(myCanvas,1000);
6、运行结果
Paste_Image.png
html5 canvas代替flash,替代Flash技术最好的选择------HTML5相关推荐
- 数据可视化的实现技术和工具比较(HTML5 canvas(Echart)、SVG、webGL等等)
http://www.cnblogs.com/zhangdi/p/3690284.html?utm_source=tuicool&utm_medium=referral 最近一直在研究数据可视 ...
- h5的横线_使用HTML5 Canvas绘制直线或折线等线条的方法讲解
HTML5 Canvas基本概念讲解html5,这个应该就不需要多作介绍了,只要是开发人员应该都不会陌生.html5是「新兴」的网页技术标准,目前,除IE8及其以下版本的IE浏览器之外,几乎所有主流浏 ...
- html5 canvas绘制图形,html5 Canvas绘制图形入门详解
html5,这个应该就不需要多作介绍了,只要是开发人员应该都不会陌生.html5是「新兴」的网页技术标准,目前,除IE8及其以下版本的IE浏览器之外,几乎所有主流浏览器(FireFox.Chrome. ...
- 9个非常有趣的HTML5 Canvas动画特效合集
HTML5技术正在不断的发展和更新,越来越多的开发者也正在加入HTML5阵营,甚至在移动开发上HTML5的地位也是越来越重要了.HTML5中的大部分动画都是通过Canvas实现,因为Canvas就像一 ...
- 字 掉落 炫酷 网站_16个富有创意的HTML5 Canvas动画特效集合
本文作者html5tricks,转载请注明出处 1.HTML5 Canvas高空瀑布下落湖面动画 HTML5 Canvas是一个神奇的网页技术,我们在Canvas画布上可以做任何有趣的事情.今天要分享 ...
- html5在线考试倒计时,html5 canvas 实现倒计时 功能
function showTime(a) { var b = { id: "showtime", //canvasid x: 60, //中心点坐标 X轴; y: 60, //中心 ...
- html画星空,html5 canvas绘制全屏的星空背景动画特效
特效描述:html5 canvas绘制 全屏星空背景 动画特效.html5 canvas背景动画,星空动画.连线区域跟随鼠标移动,外加碰壁检测 代码结构 1. 引入JS 2. HTML代码 var m ...
- 520表白html,html5 canvas全屏的520爱心表白网页代码
特效描述:html5 canvas全屏 520爱心表白 网页代码.html5 canvas制作520表白日,全屏的爱心和表白语网页动画代码,浪漫的520爱心表白动画特效. 代码结构 1. HTML代码 ...
- canvas动画科技园_7个惊艳的HTML5 Canvas动画效果及源码
HTML5非常强大,尤其是现在大部分浏览器都支持HTML5和CSS3,用HTML5制作的动画也多了起来.另外,Canvas上绘制图形非常简单,本文就分享了一些强大的HTML5 Cnavas动画,一起来 ...
最新文章
- 皮一皮:落伍了落伍了
- leetcode 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭
- 实现Modbus ASCII多主站应用
- Linux Framebuffer驱动剖析之中的一个—软件需求
- Java 接入微信小程序-登录+支付完整流程实战(环境搭建+源码),网友:看完后秒懂!...
- php二维数组引用变量,PHP二维数组的引用赋值容易犯的错误
- cad转shp 奥维_CAD转化为Shp
- altium designer(AD13)隐藏敷铜的方法
- snipaste_截图神器
- lucene索引源码分析1
- w7查看计算机每天开关机时间,WINDOWS7 怎么查看上次开关机时间
- 新人面试时候需要注意的写法
- sas 结果导出到excel 打不开解决办法
- uniapp Apple iOS 绑定解绑
- latex表格过长的解决办法之一:缩小字体
- Python实现圣诞树、打包exe过程和遇到的问题
- [转载]从春招到秋招,一个本科生的求职之路。
- 一文讲解Typescript中工具类型
- ROS从入门到精通5-5:局部路径规划插件开发案例(以DWA算法为例)
- matlab求解方程小程序,自学Matlab必备的60个小程
热门文章
- 996 马云再谈996:理性讨论比结论更重要!
- torch.zeros_like()和torch.ones_like()简要介绍
- 原生JS实现抛物线动画以及动态模糊效果
- 【合天网安】DoraBox靶场之Xss跨站
- forgot XCTF(你的疑问都可以在这里找到答案)
- Python3调用百度翻译API进行英文翻译
- java 时间轮算法_时间轮算法解析(Netty HashedWheelTimer源码解读)
- OSChina 周四乱弹 —— 你妈是洗衣机的亲妈
- 工业网关控制器CK-GW06-E01与欧姆龙 PLC配置说明
- Linux Mint 火狐浏览器改中文