从零开始制作H5应用(3)——V3.0版,loading,背景音乐及自动切换
来源:互联网 发布:yy挂机软件电脑 编辑:程序博客网 时间:2024/06/04 18:24
标签:
我们的第一个H5应用经过V1.0与V2.0的制作,已经越来越惊艳了,这一次,我们继续来给她梳妆打扮,让她更漂亮。
任务
1、加入页面加载完成前的loading动画,提升用户体验;
2、加入背景音乐,自动播放,并添加控制图标,可以控制播放与暂停
3、让页面实现自动切换。
实现
第一步:Loading动画
index.html
……<body><div class=‘loader loader--spinningDisc‘></div><div id="pages">……
style.css
.loader { margin: 10em auto; z-index:10000;}.loader--spinningDisc { border: solid 0.5em #9b59b6; border-right-color: transparent; border-left-color: transparent; padding: 0.5em; width: 2em; height: 2em; border-radius: 50%; background: #3498db; background-clip: content-box; animation: spinDisc 1.5s linear infinite;}@keyframes spinDisc { 50% { border-top-color: #3498db; border-bottom-color: #3498db; background-color: #2ecc71; } 100% { transform: rotate(1turn); }}
效果:
我们让它在页面加载完成之后就自动隐藏,并且让下面的箭头在页面完成加载后再出现:
myfn.js
window.onload = function(){ $(".loader").css("z-index","1"); $(".upicon").css("z-index","1000");}
style.css
.upicon { width: 60px; height: 60px; position: absolute; left: 50%; bottom: 20px; margin-left: -30px; z-index: 1; //注意这里与之前的不同}
好了,loading动画就处理好了。
第二步:背景音乐
我们先要准备好背景音乐的素材,最好是纯音乐的,并且经过剪切的,因为是移动端,既要考虑流量问题,也要考虑到我们整个应用的时长,并且充分利用循环播放的特性。
由于移动端浏览器基本上都是支持H5的,而我们做的也是基于H5的应用,所以我们直接采用H5的标签来在页面中插入音乐。
index.html
……<audio src="1.mp3" autoplay="autoplay" id="audio" hidden="hidden"></audio>……
再次刷新浏览器,便可听到我们插入的悦耳的音乐了。
现在,我们加入控制图标并在myfn.js里编写控制播放与暂停的功能。
我们准备两张png格式的图片,分别在音乐播放与暂停时来显示,如图:
在页面中加入一个ID为audioPlay的div,负责显示图片:
index.html
……<audio src="1.mp3" autoplay="autoplay" id="audio" hidden="hidden"></audio><div id="audioPlay"></div>……
style.css
#audioPlay { width:38px; height: 38px; background-image: url("imgs/music_play.png"); background-repeat: no-repeat; background-size: 100% 100%; position: absolute; top: 5%; right: 5%; z-index: 9999999;}
效果如图:
然后我对myfn.js进行改造,将页面切换部分的代码封装为一个独立的功能函数,方便后面自动切换使用,为了避免与音乐控制按钮发生冲突,将页面切换监听事件绑定到.page之上。改造后的myfn.js全部代码如下:
myfn.js
$(function(){ var curpage=1; var totalpage,nextpage,lastpage,nexttotalpage; totalpage = $(".page").length; nexttotalpage = totalpage + 1; window.onload = function(){ $(".loader").css("z-index","1"); $(".upicon").css("z-index","1000"); initAudio("audio"); } var audio; function initAudio(id){ audio = document.getElementById(id); } document.addEventListener(‘touchmove‘,function(event){ event.preventDefault(); },false);//控制音乐播放停止和音乐ico图标变换 $(".page").swipeUp(function(){ swichpage(); }) $("#audioPlay").on(‘click‘,function(){ if(audio.paused){ audio.play(); this.style.backgroundImage="url(imgs/music_play.png)"; }else{ audio.pause(); this.style.backgroundImage="url(imgs/music_pause.png)"; } }); function swichpage() {//判断当前页是否为最后一页 //获取总页数,以及总页数的+1后的序号,供后面for循环使用 //如果是最后一页,显示第一页,并移除所有page上的所有css效果类,否则显示下一页,并移除上一页的切换动画效果 if (curpage == totalpage) { for (var i = 1; i < nexttotalpage; i++) { $(".page" + i).removeClass("hide"); $(".page" + i).removeClass("show"); $(".page" + i).removeClass("pt-page-moveFromBottomFade"); } $(".page1").addClass("show"); $(".page1").addClass("pt-page-moveFromBottomFade"); curpage = 1; } else { nextpage = curpage + 1; lastpage = curpage - 1; $(".page" + curpage).removeClass("pt-page-moveFromBottomFade"); $(".page" + curpage).addClass("pt-page-moveToTopFade"); $(".page" + curpage).removeClass("show"); $(".page" + curpage).addClass("hide"); $(".page" + nextpage).removeClass("hide"); $(".page" + nextpage).addClass("show"); $(".page" + nextpage).addClass("pt-page-moveFromBottomFade"); $(".page" + lastpage).removeClass("pt-page-moveToTopFade"); curpage = nextpage; } }})//the end
再次刷新浏览器,初始状态下音乐自动播放,并且控制按钮为亮色的,点击控制按钮后,音乐暂停播放,图标变为暗色,如下图:
第三步:自动切换
实现自动切换的原理其实就是一个典型的定时器功能,代码如下:
myfn.js
…… curpage = nextpage; } } setInterval(function(){ swichpage(); },4000);})// the end
这样就实现了页面每四秒自动切换至下一页的功能。
好了,这一次的改造相对来说比较简单,V3.0版本就大功告成了。
- 从零开始制作H5应用(3)——V3.0版,loading,背景音乐及自动切换
- 从零开始学习制作H5应用——V3.0版,loading,背景音乐及自动切换
- 从零开始学习H5应用(1)——V1.0版,简单页面滑动切换效果
- 从零开始学习H5应用(1)——V1.0版,简单页面滑动切换效果
- 从零开始制作H5应用(2)——V2.0版,多页单张图片滑动,透明过渡及交互指示
- 从零开始制作H5应用(2)——V2.0版,多页单张图片滑动,透明过渡及交互指示
- 从零开始制作H5应用(4)——V4.0,加入文字并给文字加特效
- 从零开始制作H5应用(4)——V4.0,加入文字并给文字加特效
- 从零开始学习制作H5应用——V5.0:后悔机制,整理目录,压缩,模板化
- 活学活用——制作创意Android生日礼物(含拼图游戏,背景音乐,自动拨号等功能实现)
- H5背景音乐自动播放和暂停
- 微信H5背景音乐自动播放
- 微信h5,背景音乐自动播放
- 定时器应用—选项卡自动切换
- 解决微信H5背景音乐不自动播放问题
- h5页面背景音乐不能自动播放的方案之一
- Unity3D自学笔记——架构应用(五)Loading场景及持久化场景
- 【H5 3D应用开发】 Three.js 播放json模型动画并切换动画(一)
- 物理层学习结构
- Unity3d学习03
- 【数据结构与算法】 Dijkstra算法
- tomcat 终止端口号
- 数据结构和算法学习(12)-堆
- 从零开始制作H5应用(3)——V3.0版,loading,背景音乐及自动切换
- android学习笔记,样式的开发-selector
- linux下的所有组及文件权限
- “模拟退火算法的并行化”之“接手‘硬骨头’”
- ajax缓存问题
- 追踪内核Makefile 的一点心得。
- SSH框架整合(简介)
- (转)oracle中如何对字符串进行去除空格的方法
- Android的OnTouch事件,添加触摸颜色变化,ACTION_UP事件不触发解决方案