實現數碼電視機頂盒畫面的純鍵盤和遙控操作網頁

2022-01-16 11:41:55 字數 1535 閱讀 7866

今天完成了乙個專案,是要做乙個廣東電視局給的專案,實現乙個用鍵盤或遙控控制的頁面,重構工作我就不說了吧,來說說實現鍵盤控制的問題。

鍵盤控制想想好像很簡單,但是其實這裡面要注意的問題也有很多,我的思路是這樣的:

1、重構的時候定義乙個active類,用來給當前選中的元素新增active樣式(對了,由於專案需求,我在做的時候把類似a,input這樣的自帶焦點的元素都

換成了div和span來替代,因為機頂盒它自身會給這些元素帶乙個active樣式,乙個紅框,但是太醜了,所以就自己定製化)

2、把重構的頁面劃分為若干個區域,在js中為每個區域建立乙個陣列,這裡我用btn*(*表示阿拉伯數字)來表示,這樣,我們就得到了若干個陣列,再用

index來表示每個陣列中的元素下標,我們就可以很方便地訪問每個元素

3、非常關鍵的乙個地方,需要建立乙個函式,來指導你當前的這個陣列名是指哪個陣列,所以就用到了一下這個**:

[html]view plain

copy

var main=function(e)else if(currbtns==2)else if(currbtns==3)else if(currbtns==4)else if(currbtns==5)else if(currbtns==5)else if(currbtns==6)else if(currbtns==7)else if(currbtns==8)else if(currbtns==9)  

$(predom).removeclass("active");  

$(predom).removeclass("btnactive");  

$(predom).removeclass("playing");  

predom=dom;  

if(dom==btn8[index])  

else if(dom==btn5[index]||dom==btn6[index])  

else  

}  並且要讓它在一開始的時候就繫結到鍵盤時間上:

[html]view plain

copy

document.body.onkeydown=main;  

最後通過wasd和enter的鍵盤碼來訪問每個元素,這裡因為是商業專案,所以不能透露太多,給出「up」操作時的**以供參考:

[html]view plain

copy

var keycontrol=function(key)  

else if(currbtns==2)  

}  else if(currbtns==4)  

else if(currbtns==5)  

else if(currbtns==6)  

}  else if(currbtns==7)  

else if(currbtns==8)  

else if(index==1)  

else if(index==2)  

else if(index==3)  

}  效果圖:

常見電視機頂盒故障

a 檢查直播光纖光值是否在正常範圍內,無源光接機是否損壞 a 這是由於ca授權指令延遲產生的,正常在開通後5 10分鐘指令傳送完畢,能正常收看,如超出正常時間,聯絡大廳重新整理 a 檢查無源光接機是否損壞,機頂盒 卡是否損壞,是否離wifi過近導致的干擾 a 排障順序 更換無源光接機 更換機頂盒 更...

常見電視機頂盒故障

a 檢查直播光纖光值是否在正常範圍內,無源光接機是否損壞 a 這是由於ca授權指令延遲產生的,正常在開通後5 10分鐘指令傳送完畢,能正常收看,如超出正常時間,聯絡大廳重新整理 a 檢查無源光接機是否損壞,機頂盒 卡是否損壞,是否離wifi過近導致的干擾 a 排障順序 更換無源光接機 更換機頂盒 更...

常見電視機頂盒故障

a 檢查直播光纖光值是否在正常範圍內,無源光接機是否損壞 a 這是由於ca授權指令延遲產生的,正常在開通後5 10分鐘指令傳送完畢,能正常收看,如超出正常時間,聯絡大廳重新整理 a 檢查無源光接機是否損壞,機頂盒 卡是否損壞,是否離wifi過近導致的干擾 a 排障順序 更換無源光接機 更換機頂盒 更...