- 爱易网页
 
                        - 
                            JavaSript
 
                        - 键盘下上,左右切换效果 
 
                         
                    
                    
                    日期:2014-05-16  浏览次数:20550 次 
                    
                        
                         键盘上下,左右切换效果
星      
期       中央一台       节目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>