日期:2014-05-16  浏览次数:20447 次

键盘上下,左右切换效果
星  
期 中央一台 节目1


二 中央二台 节目2

三 中央三台 节目3

四 中央四台 节目4

五 中央五台 节目5

六 中央六台 节目6

日 中央七台 节目7
  。。。。 。。。

需求:
1.一开始进入默认选择第二个台,不一定是中央二台。选中的颜色为红色背景。
2.默认显示当前系统星期。
3.按键盘右键选择节目栏目,选中节目栏目背景色为红色,左边的选中的台需要变成灰色。
4.频道不止7个,可能是100个,1000个,假如选择到了第7个台,那么继续往前会将台号显示出来。而前面的则会移动上去,但是显示还是7个台。假如去到最后一个台,再向下则返回第一个台,且焦点落在第一个台。假如向上到达了第一个台,那么焦点将会移动到最后一个台,焦点落在最后一个台上。

请高手设计一下效果。

------解决方案--------------------
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<style type="text/css">
.liFocus {
color:red;
}
.liFocus a {
color:red;
}
a {
text-decoration:none;
color:#000;
}
.week {
width:100px;
display:inline-block;
}
li a {
width:100px;
display:inline-block;
}
.program {
width:100px;
display:inline-block;

</style>
</head>
<body>
<ul>
<li style="display:none;">
<span class="week"></span>
<a href="javascript:;" class=""></a>
<span class="program"></span>
</li>
</ul>
<script type="text/javascript" src="file:///F|/workspace/jquery-1.7.min.js"></script>
<script type="text/javascript">
/*
param:tv -- 所有的电视台
*/
//如果有更多的电视台可以添加到tv里面
var tv = ['中央一台','中央二台','中央三台','中央四台','中央五台','中央六台'
,'中央七台','中央八台','中央九台','中央十台','中央十一台','中央十二台'
,'中央十三台','中央十四台','中央十五台','江苏卫视','东南卫视','重庆卫视'
,'CQTV-1','CQTV-2','CQTV-3','CQTV-4','CQTV-5','CQTV-6','CQTV-7'
,'CQTV-8','湖北卫视','山西卫视','陕西卫视','广西卫视','广东卫视','深圳卫视'
,'四川卫视','甘肃卫视','西藏卫视','新疆卫视','河南卫视','河北卫视','湖南卫视'
];
function choose(tv) {
var week = ['一','二','三','四','五','六','日'];//存放星期几的数组
var cloneLi = document.getElementsByTagName("li")[0];
var newLi = null;
var ul = $("ul");
for(var i=0;i<tv.length;i++) {
newLi = $(cloneLi).clone(true);
$(newLi).show();
$(newLi).children(".week").text("星期"+week[i%7]);
$(newLi).children("a").text(tv[i]);
$(newLi).children(".program").text("节目"+parseInt(i+1));
ul.append(newLi);
if(i === 1) {
$(newLi).addClass("liFocus");
}
}
}
choose(tv);
$(document).live("keydown",function(e) {
var liFocus = $(".liFocus");
//var e = event || window.event;
if(e.keyCode === 38) {
if($("li:first").next("li").hasClass("liFocus")) {
$("li").removeClass("liFocus");
$("li:last").addClass("liFocus");
}else {
$("li").removeClass("liFocus");
liFocus.prev("li").addClass("liFocus");
}
}else if(e.keyCode === 40) {
if($("li:last").hasClass("liFocus")) {
$("li").removeClass("liFocus");
$("li:first").next("li").addClass("liFocus");
}else {
$("li").removeClass("liFocus");
liFocus.next("li").addClass("liFocus");
}
}

});
</script>
</body>
</html>