首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

键盘下上,左右切换效果

2012-09-14 
键盘上下,左右切换效果星期中央一台节目1一二中央二台节目2三中央三台节目3四中央四台节目4五中央五台节目

键盘上下,左右切换效果
星  
期 中央一台 节目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>





















撸猪是这个意思不??代码有待改进,这个不用我来做了吧
[解决办法]
还有问题发站内信
[解决办法]
我原先也做过一个类似的,是用js模仿的,简单说下我的思路
1、打开界面设置默认,给他添加一个选中的样式,就是焦点
2、设置一个变量是存储鼠标位置,向下就是+,向上就是-。鼠标向上或者向下的时候,选中样式跟着变化(通过变量)。
3、数据变化也可以根据你的鼠标位置对行数进行显示隐藏控制。
[解决办法]
呀,你代码这不都差不多了

热点排行
Bad Request.