2017年,第一天上班寫文章,過(guò)年在家沒(méi)條件,農(nóng)村的娃不容易啊。。
以上過(guò)濾掉吧,先看下本文要實(shí)現(xiàn)的效果
這只是播放效果,至于為什么沒(méi)有把數(shù)據(jù)更新效果弄出來(lái),主要是不想,,哈哈
熟練JS的玩家們看到這樣就會(huì)想到setInterval吧,,沒(méi)錯(cuò)這個(gè)就是用setInterval來(lái)實(shí)現(xiàn)的,,
下面看下HTML結(jié)構(gòu)吧
代碼沒(méi)有貼全,因?yàn)槠渌牟恍枰!?/p>
接著來(lái)看下JS部分
// 雷達(dá) function radarFn() { var radarDatas = [ {"image":"http://cdn.caiyunapp.com/res/storm_radar/radar_CN01_nmc_fast/201612080855.png","time":"08:55","lonlat":[3.9079,71.928151770494,57.9079,134.86564822951]}, {"image":"http://cdn.caiyunapp.com/res/storm_radar/radar_CN01_nmc_fast/201612080904.png","time":"09:04","lonlat":[3.9079,71.928151770494,57.9079,134.86564822951]}, {"image":"http://cdn.caiyunapp.com/res/storm_radar/radar_CN01_nmc_fast/201612080919.png","time":"09:19","lonlat":[3.9079,71.928151770494,57.9079,134.86564822951]}, {"image":"http://cdn.caiyunapp.com/res/storm_radar/radar_CN01_nmc_fast/201612080931.png","time":"09:31","lonlat":[3.9079,71.928151770494,57.9079,134.86564822951]}, {"image":"http://cdn.caiyunapp.com/res/storm_radar/radar_CN01_nmc_fast/201612080943.png","time":"09:43","lonlat":[3.9079,71.928151770494,57.9079,134.86564822951]}, {"image":"http://cdn.caiyunapp.com/res/storm_radar/radar_CN01_nmc_fast/201612080954.png","time":"09:54","lonlat":[3.9079,71.928151770494,57.9079,134.86564822951]}, {"image":"http://cdn.caiyunapp.com/res/storm_radar/radar_CN01_nmc_fast/201612081005.png","time":"10:05","lonlat":[3.9079,71.928151770494,57.9079,134.86564822951]}, {"image":"http://cdn.caiyunapp.com/res/storm_radar/radar_CN01_nmc_fast/201612081018.png","time":"10:18","lonlat":[3.9079,71.928151770494,57.9079,134.86564822951]}, {"image":"http://cdn.caiyunapp.com/res/storm_radar/radar_CN01_nmc_fast/201612081031.png","time":"10:31","lonlat":[3.9079,71.928151770494,57.9079,134.86564822951]}, {"image":"http://cdn.caiyunapp.com/res/storm_radar/radar_CN01_nmc_fast/201612081031.png","time":"10:31","lonlat":[3.9079,71.928151770494,57.9079,134.86564822951]}, {"image":"http://cdn.caiyunapp.com/res/storm_radar/radar_CN01_nmc_fast/201612081031.png","time":"10:31","lonlat":[3.9079,71.928151770494,57.9079,134.86564822951]} ]; var autoPlay = null, imageLayer = null, index = 0, once = true; function play(radarData) { // 重置索引 index = 0; // 重置進(jìn)度 $(".zh-playbar dd .zh-cur").width(0); // 清除間隔動(dòng)畫 if(autoPlay !== null) { clearInterval(autoPlay); autoPlay = null; } // 清除圖片 if(imageLayer !== null) { map.remove(imageLayer); imageLayer = null; } // 生成節(jié)點(diǎn) var rdLength = radarData.length, ddWth = $(".zh-playbar dd").width(), liWth = (ddWth/rdLength).toFixed(4), li = ""; for(var i=0; i"+radarData[i].time+""; } $(".zh-playbar dd ul").html(li); // 切換圖片 function switchImgFn() { if(imageLayer !== null) { map.remove(imageLayer); imageLayer = null; } index++; if(index > rdLength) { index = 0; } if(radarData[index-1]) { imageLayer = new AMap.ImageLayer({ map: map, url: radarData[index-1].image, bounds: new AMap.Bounds([radarData[index-1].lonlat[1], radarData[index-1].lonlat[0]], [radarData[index-1].lonlat[3], radarData[index-1].lonlat[2]]), }); } $(".zh-playbar dd .zh-cur").width(index*liWth); } // 播放判斷 if($(".zh-playbar dt").hasClass("active") && $("#op_radar").hasClass("active") && autoPlay === null) autoPlay = setInterval(switchImgFn, 1000); // 播放 // 播放/暫停 $(".zh-playbar dt").off("click"); $(".zh-playbar dt").on("click", function() { if($(this).hasClass("active")) { $(this).removeClass("active"); clearInterval(autoPlay); // 暫停 autoPlay = null; } else { $(this).addClass("active"); autoPlay = setInterval(switchImgFn, 1000); // 播放 } }); // 顯示/隱藏 $("#op_radar").off("click"); $("#op_radar").on("click", function() { if($(this).hasClass("active")) { $(this).removeClass("active"); $(".zh-playbar").removeClass("active"); // 隱藏播放條 if(imageLayer !== null) imageLayer.hide(); // 隱藏圖片 clearInterval(autoPlay); // 暫停 autoPlay = null; } else { $(this).addClass("active"); $(".zh-playbar").addClass("active"); // 顯示播放條 if(imageLayer !== null) imageLayer.show(); // 顯示圖片 if(once) { // 第一次點(diǎn)擊會(huì)自動(dòng)播放 $(".zh-playbar dt").addClass("active"); once = false; } if($(".zh-playbar dt").hasClass("active")) autoPlay = setInterval(switchImgFn, 1000); // 播放 } }); } // 初始狀態(tài) if($("#op_radar").hasClass("active")) { $(".zh-playbar").addClass("active"); // 顯示播放條 $(".zh-playbar dt").addClass("active"); // 播放狀態(tài) } // 初始執(zhí)行(這里可以使用ajax請(qǐng)求來(lái)的數(shù)據(jù)) play(radarDatas); // 8分鐘重新請(qǐng)求數(shù)據(jù)(這里可以使用ajax請(qǐng)求來(lái)的數(shù)據(jù)) setInterval(function() { var length = Math.round(Math.random()*radarDatas.length); length = length == 0 ? 1 : length; var testData = radarDatas.slice(0, length); play(testData); }, 8*60*1000); }
細(xì)看一下代碼不多,不用深究,粗略看下知道怎么回事就行了。。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/81386.html
摘要:最近的項(xiàng)目中需要播放視頻,鑒于元素的一些坑及不想自己造輪子,于是就找到了端播放視頻使用量最多的插件,是國(guó)外開(kāi)發(fā)者開(kāi)發(fā)的,英語(yǔ)本身就不好的我看英文文檔簡(jiǎn)直是折磨,國(guó)內(nèi)又沒(méi)有中文文檔,能搜的到的基本是簡(jiǎn)單的使用及最基本的的介紹,想要實(shí)現(xiàn)一些自定 最近的項(xiàng)目中需要播放視頻,鑒于html5元素的一些坑及不想自己造輪子,于是就找到了web端播放視頻使用量最多的插件video.js,video.j...
摘要:寫在最前本次的分享是一個(gè)基于標(biāo)簽實(shí)現(xiàn)的一個(gè)自定義視頻播放器。其中實(shí)現(xiàn)了播放暫停進(jìn)度拖拽音量控制及全屏等功能。核心思路我相信一定會(huì)有些沒(méi)有接觸過(guò)制作自定義播放器的童鞋對(duì)于標(biāo)簽的認(rèn)識(shí)會(huì)停留在此。整個(gè)視頻播放器的基礎(chǔ)功能實(shí)現(xiàn)的還算完善。 寫在最前 本次的分享是一個(gè)基于HTML5標(biāo)簽實(shí)現(xiàn)的一個(gè)自定義視頻播放器。其中實(shí)現(xiàn)了播放暫停、進(jìn)度拖拽、音量控制及全屏等功能。歡迎關(guān)注我的博客,不定期更新中—...
閱讀 2643·2023-04-26 02:17
閱讀 1616·2021-11-24 09:39
閱讀 1078·2021-11-18 13:13
閱讀 2638·2021-09-02 15:11
閱讀 2775·2019-08-30 15:48
閱讀 3410·2019-08-30 14:00
閱讀 2438·2019-08-29 13:43
閱讀 663·2019-08-29 13:07