美术馆案例
通过一整天的学习,终于将美术馆的案例自己亲自敲出来。
先将代码粘贴上来
Default:
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title>美术馆</title> 6 <link type="text/css" rel="stylesheet" href="style.css"/> 7 <script type="text/javascript" src="jslib.js"></script> 8 <script type="text/javascript" src="jsload.js"></script> 9 <script type="text/javascript" src="container.js"></script> 10 <script type="text/javascript" src="addClick.js"></script> 11 <script type="text/javascript" src="show.js"></script> 12 <body> 13 <ul id="nav"> 14 <li><a href="img/01.jpg"><img src="small_img/01.jpg" title="11"/></a></li> 15 <li><a href="img/02.jpg"><img src="small_img/02.jpg" title="22"/></a></li> 16 <li><a href="img/03.jpg"><img src="small_img/03.jpg" title="33"/></a></li> 17 <li><a href="img/04.jpg"><img src="small_img/04.jpg" title="44"/></a></li> 18 <li><a href="img/05.jpg"><img src="small_img/05.jpg" title="55"/></a></li> 19 <li><a href="img/06.jpg"><img src="small_img/06.jpg" title="66"/></a></li> 20 <li><a href="img/07.jpg"><img src="small_img/07.jpg" title="77"/></a></li> 21 </ul> 22 </body> 23 </html>
CSS:
1 *{margin:0px;padding:0px} 2 #nav{ 3 width:750px; 4 margin:5px auto;} 5 #nav li{ 6 list-style-type:none; 7 float:left; 8 margin-right:10px;}
Jslib:
1 var c = function(tag){ 2 return document.createElement(tag); 3 }; 4 var g =function(selector,node){ 5 var r = /#(.+)/; 6 var m =r.exec(selector); 7 //r.exec匹配的结果集是一个Array数组 数组[0]=匹配本身 [1]="()"中的内容 8 //判断m[1] 表示正则表达式匹配到的第一个索引值 9 if(m){ 10 //返回id 11 // 12 return document.getElementById(m[1]); 13 }else{ 14 //这里用了逻辑或运算符 15 node = node || document; 16 17 return node.getElementsByTagName(selector); 18 } 19 };
Jsload:
1 var jsload =function(func){ 2 var oldFunc =onload; 3 if(typeof oldFunc === "function"){ 4 onload = function(){ 5 oldFunc(); 6 func(); 7 }; 8 }else 9 { 10 onload =func; 11 } 12 13 };
Container:
1 var container = function(){
2 var div = c("div");
3 var img = c("img");
4 img.id="pic";
5 img.src ="img/face.jpg";
6 div.appendChild(img);
7 var p = c("p");
8 p.id ="txt";
9 p.innerHTML ="请点击这里上传照片";*/
10
11 //声明了一个大容器,主要用来布局,将之前放图片的div与文字p都装在这个容器中
12 //这样返回的就是大容器一个值
13 var divContainer = c("div");
14 divContainer.style.textAlign="center";
15 divContainer.style.clear ="both";
16 divContainer.appendChild(div);
17 divContainer.appendChild(p);
18 return divContainer;
19 };
addClick:
1 var addClick = function(){ 2 var ul = g("#nav"); 3 var list = g("a",ul); 4 for(var i=0;i<list.length;i++){ 5 6 list[i].onclick = function(){ 7 8 var url = this.href; 9 //txt代表图片的title文字 10 //g("img",this)返回的是一个集合 [0]代表取集合中第一个元素 11 var txt =g("img",this)[0].title; 12 g("#pic").src=url; 13 g("#txt").innerHTML =txt; 14 return false; 15 }; 16 17 } 18 19 };
Show:
1 jsload(function(){ 2 var div = container(); 3 addClick(); 4 var body =g("body"); 5 body[0].appendChild(div); 6 });
美术馆的案例是个经典的案例,运用到了dom的技术,页面分离js ,css的技术
1.引用js的代码有顺序之分
2.window.onload事件是在页面加载完毕后执行,如若未添加,之前为null。
3.在写到<a>标签的时候忘了写</a>,导致浪费了很长世间调错 (粗心)
4.
浙公网安备 33010602011771号