PS:因为Ajax涉及到跨域获取天气信息,有两个版本,一个是直接跨域,IE10支持,其他的浏览器要改配置。另一个是服务器端的weather.php,获取天气信息返回json。
weather.php就不写了,里面的对应路径存放对应的文件
演示地址:
http://569375.ichengyun.net/fm/
实现功能:
音乐播放,进度调节(滑动模块),音量条件,音乐随机选择,背景图片,图片预加载,音乐预加载,天气Ajax获取
音乐列表使用的json处理(也可以理解是hash表)
代码如下:
var mpw=musicProcess.style.width;
mpw = mpw.substring(0,mpw.indexOf('px'));
musicSlide.style.marginLeft = mpw *ra+"px";
musicCtime.innerHTML=time;
musicEtime.innerHTML=etime;
if(music.ended==true)
{
mRandPlay();
}
}
}
//**************************************************************//
//Process
//**************************************************************//
function mSlideProcessDown(e){
mouseDown=true;
mouseX = e.pageX;
}
function mSlideProcessMove(e){
if(mouseDown==true)
{
var mLeft= (e.pageX-mouseX);
var t2 = music.currentTime+music.duration*mLeft/musicProcess.style.width.substring(0,musicProcess.style.width.indexOf('px'));
t2=t2>0 ? t2:0;
mLeft=musicProcess.style.width.substring(0,musicProcess.style.width.indexOf('px'))*t2/music.duration;
musicSlide.style.marginLeft= (mLeft>0&&mLeft<300 ? mLeft:0)+"px";
}
}
function mSlideProcessUp(e){
if(mouseDown==true)
{
mouseDown=false;
var mLeft= (e.pageX-mouseX);
var t2 = music.currentTime+music.duration*mLeft/musicProcess.style.width.substring(0,musicProcess.style.width.indexOf('px'));
mLeft=musicProcess.style.width.substring(0,musicProcess.style.width.indexOf('px'))*t2/music.duration;
t2=t2>0 ? t2:0;
musicSlide.style.marginLeft= (mLeft>0&&mLeft<300 ? mLeft:0)+"px";
mouseDown=false;
mouseX=0;
music.currentTime=t2;
}
mouseDown=false;
}
//**********************Process end****************************************//
//**************************************************************//
//Volume//
//**************************************************************//
function mVolume(){
music.volume=0.5;
musicVolumeSlide.style.marginTop = 70 *(1-music.volume)+"px";
}
var vT=0;
var aT=0;
function mSlideVolumeDown(e){
mouseDown=true;
mouseY = e.pageY;
if(musicVolume.style.height=='')
musicVolume.style.height="100px";
vT = musicVolumeSlide.style.marginTop.substring(0,musicVolumeSlide.style.marginTop.indexOf('px'));
aT= musicVolumeSlide.style.marginTop.substring(0,musicVolumeSlide.style.marginTop.indexOf('px'))/musicVolume.style.height.substring(0,musicVolume.style.height.indexOf('px'));
}
function mSlideVolumeMove(e){
if(mouseDown==true)
{
var mTop= (e.pageY-mouseY);
//document.getElementById('show-statu').innerHTML=aT*musicVolume.style.height.substring(0,musicVolume.style.height.indexOf('px'))+mTop;
mTop=aT*musicVolume.style.height.substring(0,musicVolume.style.height.indexOf('px'))+mTop;
musicVolumeSlide.style.marginTop= (mTop>0&&mTop<100 ? mTop:0)+"px";
}
}
function mSlideVolumeUp(e){
if(mouseDown==true)
{
mouseDown=false;
var mTop= (e.pageY-mouseY);
mTop=aT*musicVolume.style.height.substring(0,musicVolume.style.height.indexOf('px'))+mTop;
musicVolumeSlide.style.marginTop= (mTop>0&&mTop<100 ? mTop:0)+"px";
mouseDown=false;
mouseY=0;
music.volume=1-mTop/100;
}
mouseDown=false;
}
//**********************Volume end****************************************//
/*
播放和暂停按钮
*/
function mPlay(){
var time = Math.floor(music.duration/60)+"分"+Math.floor(music.duration-60*Math.floor(music.duration/60))+"秒";
switch(music.paused){
case true:
{
music.play();
musicPlay.style.background="url(./images/button.png) 0 -159px no-repeat";
break;
}
case false:
{
music.pause();
musicPlay.style.background="url(./images/button.png) 0 -12px no-repeat";
break;
}
}
}
/*
载入歌曲
*/
var songNum=1;
function loadSongs(){
playList={0:11,
1:{'title':"我们没有在一起",'author':'刘若英','src':"./storage/womenmeiyouzaiyiqi.mp3"},
2:{'title':"Apologize",'author':'Onerepublic','src':"./storage/Apologize.mp3"},
3:{'title':"Breathless",'author':'Shayne Ward','src':"./storage/Breathless.mp3"},
4:{'title':"Call Me Maybe",'author':'Carly Rae Jepsen','src':"./storage/Carly Rae Jepsen - Call Me Maybe.mp3"},
5:{'title':"valder fields",'author':'tamas wells','src':"./storage/tamas-wells-valder-fields.mp3"},
6:{'title':"不再联系",'author':'夏天Alex','src':"./storage/buzailianxi.mp3"},
7:{'title':"What Are Words",'author':'chris medina','src':"./storage/What Are Words.mp3"},
8:{'title':"you can trust in me",'author':'tang nguoi toi yeu','src':"./storage/tang nguoi toi yeu - you can trust in me.mp3"},
9:{'title':"Stay Here Forever",'author':'Jewel','src':"./storage/Stay Here Forever.mp3"},
10:{'title':"泪的物语",'author':'Oceans Of Love','src':"./storage/tears.mp3"},
11:{'title':"亲爱的路人",'author':'刘若英','src':"./storage/qinaideluren.mp3"},
};
//Songs cache and change//
var listCount = playList[0];
var num =Math.ceil(Math.random()*10)%(listCount+1);
songNum=num;
if(songNum>listCount)
songNum=1;
num=songNum;
songs[0]=playList[num>0? num :num+1];
num=((songNum+1) > listCount ? 1 : (songNum+1));
songs[1]=playList[num>0? num :num+1];
music.src=songs[0]['src'];
nextSong = new Audio();
nextSong.src=songs[1]['src'];
nextSong.load();
//**************************//
document.getElementById('song-title').innerHTML=songs[0]['title'];
document.getElementById('song-author').innerHTML=songs[0]['author'];
setTimeout(canPlay,2000);
setTimeout(canRand,30000);
}
/*
随机播放列表的歌曲
*/
function mRandPlay()
{
//Backgorund cache and change//
backgroundNumber =Math.ceil(Math.random()*10);
bdy.style.background="url("+backgroundImages[1].src+") top";
backgroundImages[1].src= "./rain/"+(backgroundNumber >= 10 ? 1:backgroundNumber+1)+".jpg";
//***************//
var listCount = playList[0];
//Songs cache and change//
music.pause();
music=nextSong;
document.getElementById('song-title').innerHTML=songs[1]['title'];
document.getElementById('song-author').innerHTML=songs[1]['author'];
var num =Math.ceil(Math.random()*10)%(listCount+1);
songNum+=1;
if(songNum>listCount)
songNum=1;
num=songNum;
songs[1]=playList[num>0? num :num+1];
nextSong = new Audio();
nextSong.src=songs[1]['src'];
nextSong.load();
//***************//
//musicPlay.style.display='block';
musicNext.style.display='none';
setTimeout(canRand,30000);
mPlay();
}
function canPlay(){
musicPlay.setAttribute('onClick','javascript:mPlay()');
musicPlay.style.display='block';
}
function canRand(){
musicNext.setAttribute('onClick','javascript:mRandPlay()');
musicNext.style.display='block';
}
script>
喜欢一个人
不难
被同一个人喜欢
好难