写代码:
第一步:我们要做什么事情
第二步:这件事情应该在什么时候去做
FileReader上传图片的使用
FileReader是一个构造函数
所以就可以new FileReader 可以得到一个实例对象
readAsText:读取txt文件
readAsBinaryString:读取任意类型文件
readAsDataURL:这个方法url资源读取到的文件会获取到data开头的一段字符串
result:会将读取成功之后的内容存到result上
onload:读取成功
sessionStorage和localStorage的使用
sessionStorage作用:将数据保存到本地,存储的容量5mb左右
sessionStorage.setItem():像本地存储数据,第一个参数:key(name),第二个参数:value(值)
sessionStorage.getItem():获取本地sessionStorage的数据,参数为key
sessionStorage.removeItem():移除本地sessionStorage的某一个数据,参数为key
sessionStorage的特性:
关闭浏览器,数据就会自动清除数据不可以多页面共享localStorage.setItem,localStorage.getItem,localStorage.removeItem用法和sessionStorage一模一样
存储的内容大概20mb但是在同一个浏览器的不同窗口中可以共享数据永久存储,只有卸载浏览器或者手动清除浏览器缓存才能清除在开发中,使用localStorage更多一些
多媒体:http://www.w3school.com.cn/tags/html_ref_audio_video_dom.asp
常用方法: play() 播放、 pause() 暂停 、pausedJq没有提供对视频播放控件的方式,也就意味着如果要操作视频播放,必须使用原生的js方法—dom元素
常用属性:a) currentTime 视频播放的当前时间、
b) duration:视频的总时间 100000/60
c) paused:视频播放的状态.
常用事件:a) oncanplay: 事件在用户可以开始播放视频/音频(audio/video)时触发。
b) ontimeupdate: 视频时间发生变化就会触发
c) onended:播放完时触发—重置
准备工作:因为我们要大量操作video,我们可以在全局声明一个变量,来存储video元素
var video = $('video')[0]- 播放和暂停功能
给暂停播放按钮注册点击事件
在事件函数内部写逻辑:判断,如果当前状态为暂停,那么就播放,如果当前状态为播放,那么就暂停
video.paused 判断当前状态是否为暂停 是暂停 true 播放状态 false if(video.paused){ video.play(); /移除暂停样式,添加播放样式/ } else{ video.pause(); /移除播放样式,添加暂停样式/ }
toggleClass(“fa-play fa-pause”);进行类名的切换 - 全屏功能
利用$拿到全屏按钮,给注册点击事件
在事件函数内部:video.requestFullScreen该方法可以让视频全屏,有兼容性,加前缀 if(video.requestFullScreen){ video.requestFullScreen(); } else if(video.webkitRequestFullScreen){ video.webkitRequestFullScreen(); } else if(video.mozRequestFullScreen){ video.mozRequestFullScreen(); } else if(video.msRequestFullscreen){ video.msRequestFullscreen(); }
- 视频显示和总时长处理 视频什么时候可以显示? video.oncanplay = function(){ // 视频显示 video.style.display=“block”; } 怎么拿到视频的总时长? var total = video.duration // 3680
问题:首先秒数,并且还有小数
格式化时分秒 var hour = Math.floor(total/3600); hour = hour<10? ‘0’+hour:hour
var minute = Math.floor(total600/60) minute=minute<10?"0"+minute:minute; var second=Math.floor(total`); second=second<10?"0"+second:second; var str = hour+':'+minute+':'+'second' $('.totalTime').html(str)- 播放时,时间跟随变化,进度条跟随变化
视频播放的时候设置 时间跟随变化 ontimeupdate:时间发生变化会触发 在ontimeupdate事件函数中拿到当前的时间currentTime ,将当前时间格式化成时分秒 video.ontimeupdate = function(){ var current = video.currentTime var result = time(current) // 00:00:01 $(’.currentTime’).html(result) } 封装格式化时分秒的函数 function time(total){ var hour = Math.floor(total/3600); hour = hour<10? ‘0’+hour:hour
var minute = Math.floor(total600/60) minute=minute<10?"0"+minute:minute; var second=Math.floor(total`); second=second<10?"0"+second:second; return hour+':'+minute+':'+second }让进度条跟随变化,其实就是视频播放的时候设置进度条的当前进度,实际进度条的进度=视频的当前播放进度 求:视频的当前播放进度 = 当前视频播放的时间/视频总时间 var percent = video.currentTime/video.duration 将进度转化为百分比 percent = percent *100+‘%’ 最终将得到的百分比设置给进度条的宽度 $(".elapse").css(“width”,percent);
实现视频的跳播和播放之后的设置