<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Image Gallery</title>
</head>
<body>
<h1>Snapshots</h1>
<ul>
<li>
<a href="images/boy.jpg" title="A hansome boy">Boy</a>
</li>
<li>
<a href="images/cup.jpg" title="A cup of coffee"> Coffee </a>
</li>
<li>
<a href="images/yellow.jpg" title="Two yellow guy"> Guy </a>
</li>
<li>
<a href="images/fathergirl.gif" title="fight"> Father and girl </a>
</li>
</ul>
</body>
</html>

如上所示,在同目录中的images文件夹中放入你想展示的图片,利用href建立连接路径,如果想查看,点击便能下载图片观看,避免了一次下载缓冲过多的图片导致网页速度过慢,但这样做每次都得按back返回很不方便,我们要写个showPic函数使得用户点击连接能在当前页面展示图片:

1、通过增加一个“占位符”图片的方法来为图片预留一个浏览区域:

  <li>
<img id="placeholder" src="data:images/placeholder.gif" alt="my image gallery" />
</li>

通过更改images文件夹里的一张图片名字为placeholder作为占位符或者新加一张进去,用id表示出这张图片以便后边的设置它的链接属性。

2、在点击某个连接时,拦截网页的默认行为:

onclick="return false;"

3、在点击某个链接时,把"占位符“图片替换为与那个连接相对应的图片:

创建一个showPic.js文件,定义showPic函数如下:

function showPic(whichpic) {
var source = whichpic.getAttribute("href");
var placeholder = document.getElementById("placeholder");
placeholder.setAttribute("src",source);
}

并在html里引用该函数:

 <script type="text/javascript" src="scripts/showPic.js"></script>

于</body>之前;

最终代码:

 //gallary.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Image Gallery</title>
</head>
<body>
<h1>Snapshots</h1>
<ul>
<li>
<a href = "http://www.baidu.com" onclick="return false;">Click me</a>
</li>
<li>
<a href="images/boy.jpg" onclick="showPic(this);return false;" title="A hansome boy">Boy</a>
</li>
<li>
<a href="images/cup.jpg" onclick="showPic(this); return false;" title="A cup of coffee"> Coffee </a>
</li>
<li>
<a href="images/yellow.jpg" onclick="showPic(this); return false;" title="Two yellow guy"> Guy </a>
</li>
<li>
<a href="images/fathergirl.gif" onclick="showPic(this); return false;" title="fight"> Father and girl </a>
</li>
<li>
<img id="placeholder" src="data:images/placeholder.gif" alt="my image gallery" />
</li>
</ul>
<script type="text/javascript" src="scripts/showPic.js"></script>
</body>
</html>
//showPic.js
function showPic(whichpic) {
var source = whichpic.getAttribute("href");
var placeholder = document.getElementById("placeholder");
placeholder.setAttribute("src",source);
}

大功告成!

期间遇到了一直无法修改属性的问题:

主要问题是拼写错误。。。。

还有尽量避免在等号两旁加空格,貌似最后一次把空格都去掉后就成功了。。。也只能归咎是这个格式问题了

扩展:切换显示不同的文本?

1、childrenNodes 属性可以 用来获取任何一个元素的所有子元素

写一个查看子元素个数的函数:

 function countBodyChildren() {
var body_element = document.getElementsByTagName("body")[0];
alert ("the childNodes 's number: " + body_element.childNodes.length);
}
window.onload = countBodyChildren;

2、nodeType属性:返回节点的属性值:1为元素节点 2为属性节点 3为文本节点

3、nodeValue属性:获取一个节点的值:

注意:包含在<p>元素里面的文本是另一种节点,它是<P>元素的第一个子节点,因此想得到它的第一个子节点的nodevalue属性值:

alert(description.childnode[0].nodevalue);

用getAttribute来获得title的值,将它赋给description的第一个子节点的值,代码如下:

function showPic(whichpic) {
var source = whichpic.getAttribute("href");
var placeholder = document.getElementById("placeholder");
placeholder.setAttribute("src",source);
var source_2 = whichpic.getAttribute("title");
var description = document.getElementById("description");
description.childNodes[0].nodeValue = source_2;
}

最后,可以写一个样式表,将CSS代码存入layout.css文件,放入styles文件夹里,在<head>部分用一个<link>标签引用这文件:

 <link rel="stylesheet" href="styles/layout.css"

全部代码如下:

showPic.js
gallary.html
body {
font-family: "Helvetica","Arial",serif;
color: #333;
background-color: #ccc;
margin: 1em 10%;
} h1 {
color: #333;
background-color: transparent;
}
a {
color: #c60;
background-color:transparent;
font-weight:bold;
text-decoration: none;
}
ul {
padding:;
}
li {
float: left;
padding:1em;
list-syle: none;
}
img {
display:block;
clear:both;
}

layout.css

JavaScript 建立简单的图片库的更多相关文章

  1. php建立简单的用户留言系统

    php建立简单的用户留言系统 样例 addMsg.php--添加留言页面 doAction.php--响应添加留言页面 . viewMsg.php--显示留言页面 目录结构 addMsg.php--添 ...

  2. JavaScript设置简单的自动时间

    下面就是一段简单的JavaScript设置简单的自动时间,时间显示在一个输入框input里面. <html> <head> </head> <body> ...

  3. Javascript的简单测试环境

    在<JavaScript忍者秘籍>2.4测试条件基础知识中,作者给出了一个精简版的assert和assert组的实现,对于初学者而言,这无疑是一个很好的例子,既让我们得到了一个好用的小工具 ...

  4. javaScript(2)---简单使用

    javaScript(2)---简单使用 学习要点: 1.创建一张HTML页面 2.<Script>标签解析 3.JS代码嵌入的一些问题 一.创建一张HTML页面 <!DOCTYPE ...

  5. Javascript学习-简单测试环境

    Javascript学习-简单测试环境 在<JavaScript忍者秘籍>2.4测试条件基础知识中,作者给出了一个精简版的assert和assert组的实现,对于初学者而言,这无疑是一个很 ...

  6. 【Css】一个简单的图片库

    今天做一个简单的图片库! 其实这个在w3school教程里介绍得很好了,不过看到什么,自己动手做一次,记得也深刻不是. 我们分几步来走: 第一步:先写一个坯子. <html> <he ...

  7. JavaScript中简单排序总结

    JavaScript中简单排序总结 冒泡排序 经典排序算法, 双重for循环 在第二个for循环的时候, j < arr.len -1 -i , 这一步的优化很重要 function bullS ...

  8. JavaScript 实现简单的 弹出框关闭框

    JavaScript 实现简单的 弹出框关闭框 知识点: 1.javaScript 添加HTML标签 2.javaScript 添加HTML标签属性 3.javaScript 追加元素 代码献上: & ...

  9. 用javascript实现简单的用户登录验证

    用javascript实现简单的用户登录验证 <!DOCTYPE html> <html lang="en"> <head> <meta ...

随机推荐

  1. POJ3176——Cow Bowling(动态规划)

    Cow Bowling DescriptionThe cows don't use actual bowling balls when they go bowling. They each take ...

  2. POJ3020——Antenna Placement(二分图的最大匹配)

    Antenna Placement DescriptionThe Global Aerial Research Centre has been allotted the task of buildin ...

  3. zf2 安装

    下载实例程序 ZendSkeletonApplication 解压至D:\xampp\htdocs并重命名为ZendSkeletonApplication 下载Zend Framework 2.0最新 ...

  4. Android之开发杂记(二)

    1.android 4.0 以后 高版本没有虚拟菜单键

  5. 二分查找和hash查找

    转载:http://blog.csdn.net/feixiaoxing/article/details/6844723 无论是数据库,还是普通的ERP系统,查找功能数据处理的一个基本功能.数据查找并不 ...

  6. Linux守护进程详解(init.d和xinetd) [转]

    一 Linux守护进程 Linux 服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户.提供这些服务的程序是由运行在后台 的守护进程来执行的 ...

  7. Weblogic控制器的部署

    WebLogic的安装 一 WebLogic安装 1.  打开WebLogic安装程序:oepe11_wls1031.exe(我们选用的是WebLogic 10.3g).如图1-1所示: 图1-1   ...

  8. 《c程序设计语言》读书笔记--首次输入不能是空符;最多10个字符

    #include <stdio.h> #define Num 10 int main() { int wor = 0; int arr[Num] = {0}; int c,count = ...

  9. 总结Allegro元件封装(焊盘)制作方法[修整]

    总结Allegro元件封装(焊盘)制作方法 在Allegro系统中,建立一个零件(Symbol)之前,必须先建立零件的管脚(Pin).元件封装大体上分两种,表贴和直插.针对不同的封装,需要制作不同的P ...

  10. Linux天天见

    一.Linux基础篇 1. 发行版本 redhat/centos/suse/debian/ 2. 目录结构 /bin /boot -> grub /dev /etc ->init.d sy ...