多媒体和图形编程
这个属于在客户端生成图片,能够减小服务器的压力html
web页面使用img元素,嵌入图片。
img元素能够经过控制src属性来操控img。
一个栗子,鼠标通过的时候,改变图片web
当鼠标通过的时候,会触发两个事件,分别是onmouseover以及onmouseout两个
html以下chrome
<!doctype html> <html> <head> <title>这是一个模拟图片翻转的dome</title> </head> <body> <img src="images/help.gif"> </body> </html>
js以下编程
// 获取元素 let img = document.getElementsByTagName("img")[0] // 绑定事件 img.addEventListener(onmouseover, () => { this.src="./images/help_rollover.gif"; }) img.addEventListener(onmouseout, () => { this.src="./images/help.gif"; }) img.addEventListener(onclick, () => { this.src="./images/help_onlick.gif"; })
因为要实现图片翻转,须要较高的响应度,此时须要进行缓存,new一个Image对象建立一个HTMLImageElement对象实例
文档 https://developer.mozilla.org...
即建立一个对象用来暂时储存图片。api
let myImage = new Image(10, 200); // 设置缓存的图片大小 myImage.src="./picture.jpg"; // 设置缓存的图片位置 document.body.appendChild(myImage) // 添加一个子节点 // 等价于 let img = "<img width=100 height=200 src=./picture.jpg>" document.body.appendChild(img);
使用的是Image()类,建立对象浏览器
其中图片的懒加载可使用Image类,先缓存图片,等待用户滑到的时候,而后触发事件,将src进行替换。
h5中引用了两个变迁audio和video两个标签
https://developer.mozilla.org...
https://developer.mozilla.org...
即便用上方两个标签,能够实现简单的视频和音频的插入缓存
<audio src="background_music.mp3"/> <video src="news.mov" width=320 height=240/>
使用上方的两个标签实现简单的视频和音频的插入服务器
因为标准的执行问题,因此使用source标签实现兼容
文档 https://developer.mozilla.org...
下方是一个兼容的实现app
<video id="news" width=640 height=480 controls preload> <!-- Firefor chrome 支持的web格式 --> <source src="news.mp4" type="video/webm"> <!-- IE和Safair支持的h。264格式 --> <source src="news.mp4" type="video/mp4"> <!-- flash插件用作后备方案 --> <object width=640 height=480 type="application/x-hockwave-flash" data="flash_movie_player.swf"> <!-- 这里的参数配置flash视频播放器 ---> <!-- 文本用作后备内容 ---> <div>播放器不支持</div> </object> </video>
Audio()构造函数相似Image()函数
例如dom
new Audio("./chime.wav").play(); // 载入并播放声音效果
这是音频的api,视频没有这个api
使用的是canPlayType进行的
原型为 HTMLMediaElement.canPlayType()
能播放返回一个真值,不能播放返回一个假值
let a = new Audio(); if (a.canPlayType("audio/wav")) { a.src="./soundeffect.wav"; a.play(); // 进行播放 }
文档 https://developer.mozilla.org...
控制媒体播放使用的是play()和pause()方法用来控制和暂停媒体的播放
// 文档载入完成后,开始播放背景音乐 window.addEventListener("load", () => { document.getElementById("music").play(); }, false);
经过设置urrentTime属性进行定点播放,
volume表示播放音量
playbackRate表示播放的速度
若是元素拥有controls属性,会在播放器上显示控件,让用户进行控制播放。
controls表示在浏览器中是否显示控件true为显示,false为隐藏,
他们有一些只读的属性,描述当前的状态。
播放器暂停,pause属性值为true
播放器跳转到一个新的播放点,seeking的值为true
若是彻底播放完成,ended为true
duration媒体时长
initialTime表示媒体的开始时间
等等还有不少,用的时候现查吧,过一遍,大体知道有这些属性便可
会有媒体的相关事件,必须使用addEventListener()方法注册在audio和video元素上,当被请求的时候触发,当被加载的时候触发等等。
下面是svg