<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>diao</title>
<link rel="stylesheet" type="text/css" href="css/test.css" />
<style type="text/css">
*{margin:0;padding:0;}
.clear{clear:both;height:0;overflow:hidden;}
#menu span{float:left;width:60px;height:30px;cursor:pointer;text-align:center;border:1px green solid;}
#menu .color{font-weight:bold;color:red;background:#666;}
#cont div{width:320px;height:320px;display:none;}
#cont .show{display:block;}
.color1{background:red;}
.color2{background:yellow;}
.color3{background:blue;}
.color4{background:green;}
.color5{background:#000;}
</style>
<script language="javascript">
function tabchange(){
aa=document.getElementById("menu").getElementsByTagName("span")
for (i=0;i<aa.length ;i++ ){
addEventHandler(aa[i],"mouseover",function(){changecss(this);})
}
}
function addEventHandler(oTarget,sEventType,fnHandler){
if(oTarget.addEventListener){
oTarget.addEventListener(sEventType,fnHandler,false)
}else{oTarget["on"+sEventType]=fnHandler;}
}
function changecss(ospan){
aa=document.getElementById("menu").getElementsByTagName("span")
ss=document.getElementById("cont").getElementsByTagName("div")
for (i=0;i<aa.length ;i++ ){
aa[i].className="";
if(aa[i]==ospan){
aa[i].className="color";
ss[i].className="show color"+(i+1);
}else{ss[i].className="";}
}
}
window.onload=function(){tabchange();}
</script>
</head>
<body style="padding:100px;"><div id="menu">
<span class="color">红</span>
<span>黄</span>
<span>蓝</span>
<span>绿</span>
<span>黑</span>
</div>
<div class="clear"> </div>
<div id="cont">
<div class="show color1">红</div>
<div>黄</div>
<div>蓝</div>
<div>绿</div>
<div>黑</div>
</div></body>
</html>
请问上面这段代码怎么理解啊?给点注释!
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>diao</title>
<link rel="stylesheet" type="text/css" href="css/test.css" />
<style type="text/css">
*{margin:0;padding:0;}
.clear{clear:both;height:0;overflow:hidden;}
#menu span{float:left;width:60px;height:30px;cursor:pointer;text-align:center;border:1px green solid;}
#menu .color{font-weight:bold;color:red;background:#666;}
#cont div{width:320px;height:320px;display:none;}
#cont .show{display:block;}
.color1{background:red;}
.color2{background:yellow;}
.color3{background:blue;}
.color4{background:green;}
.color5{background:#000;}
</style>
<script language="javascript">
function tabchange(){
aa=document.getElementById("menu").getElementsByTagName("span")
for (i=0;i<aa.length ;i++ ){
addEventHandler(aa[i],"mouseover",function(){changecss(this);})
}
}
function addEventHandler(oTarget,sEventType,fnHandler){
if(oTarget.addEventListener){
oTarget.addEventListener(sEventType,fnHandler,false)
}else{oTarget["on"+sEventType]=fnHandler;}
}
function changecss(ospan){
aa=document.getElementById("menu").getElementsByTagName("span")
ss=document.getElementById("cont").getElementsByTagName("div")
for (i=0;i<aa.length ;i++ ){
aa[i].className="";
if(aa[i]==ospan){
aa[i].className="color";
ss[i].className="show color"+(i+1);
}else{ss[i].className="";}
}
}
window.onload=function(){tabchange();}
</script>
</head>
<body style="padding:100px;"><div id="menu">
<span class="color">红</span>
<span>黄</span>
<span>蓝</span>
<span>绿</span>
<span>黑</span>
</div>
<div class="clear"> </div>
<div id="cont">
<div class="show color1">红</div>
<div>黄</div>
<div>蓝</div>
<div>绿</div>
<div>黑</div>
</div></body>
</html>
请问上面这段代码怎么理解啊?给点注释!
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>diao</title>
<link rel="stylesheet" type="text/css" href="css/test.css" />
<style type="text/css">
*{margin:0;padding:0;}
.clear{clear:both;height:0;overflow:hidden;}
#menu span{float:left;width:60px;height:30px;cursor:pointer;text-align:center;border:1px green solid;}
#menu .color{font-weight:bold;color:red;background:#666;}
#cont div{width:320px;height:320px;display:none;}
#cont .show{display:block;}
.color1{background:red;}
.color2{background:yellow;}
.color3{background:blue;}
.color4{background:green;}
.color5{background:#000;}
</style>
<script language="javascript">
function tabchange(){
//获取id为menu对象的所有的span标签对象,并将结果返回给(赋值给)变量aa
aa=document.getElementById("menu").getElementsByTagName("span")
for (i=0;i<aa.length ;i++ ){
//循环执行给没给span对象绑定事件(mouseover--鼠标漂浮上去就会执行)
addEventHandler(aa[i],"mouseover",function(){changecss(this);})
}
}
function addEventHandler(oTarget,sEventType,fnHandler){//tabchange方法用到了这个方法,这个方法有三个参数
//给对象oTarget绑定事件on+sEventType,并将这个事件与方法fnHandler结合(也就是让on+sEventTyhpe触发fnHandler方法)
if(oTarget.addEventListener){//火狐(FF)下有效(这个方法(addEventListener)在ie不管用)
oTarget.addEventListener(sEventType,fnHandler,false)
}else{oTarget["on"+sEventType]=fnHandler;}//不是火狐(主要是ie)下有效
}
function changecss(ospan){//这个方法就是循环给menu中的对象设置css(样式)
aa=document.getElementById("menu").getElementsByTagName("span")
ss=document.getElementById("cont").getElementsByTagName("div")
for (i=0;i<aa.length ;i++ ){
aa[i].className="";
if(aa[i]==ospan){
aa[i].className="color";
ss[i].className="show color"+(i+1);
}else{ss[i].className="";}
}
}
window.onload=function(){tabchange();}//在页面加载的时候就开始执行这个函数(主要是函数中的方法(还是函数)tabchage)
</script>
</head>
<body style="padding:100px;"><div id="menu">
<span class="color">红</span>
<span>黄</span>
<span>蓝</span>
<span>绿</span>
<span>黑</span>
</div>
<div class="clear"> </div>
<div id="cont">
<div class="show color1">红</div>
<div>黄</div>
<div>蓝</div>
<div>绿</div>
<div>黑</div>
</div></body>
</html>
其效果就是当mouse在span上面的时候更改CSS样式,通过更改className来实现。
oTarget.addEventListener(sEventType, fnHandler, false);
这句是真正做监听的,oTarget需要监听的元素,sEventType监听的类型,这里是mouseover,fnHandler是事件触发所调用的函数,这里是function(){ changecss(this);}