JavaScript 建立简单的图片库
<!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"
全部代码如下:
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 建立简单的图片库的更多相关文章
- php建立简单的用户留言系统
php建立简单的用户留言系统 样例 addMsg.php--添加留言页面 doAction.php--响应添加留言页面 . viewMsg.php--显示留言页面 目录结构 addMsg.php--添 ...
- JavaScript设置简单的自动时间
下面就是一段简单的JavaScript设置简单的自动时间,时间显示在一个输入框input里面. <html> <head> </head> <body> ...
- Javascript的简单测试环境
在<JavaScript忍者秘籍>2.4测试条件基础知识中,作者给出了一个精简版的assert和assert组的实现,对于初学者而言,这无疑是一个很好的例子,既让我们得到了一个好用的小工具 ...
- javaScript(2)---简单使用
javaScript(2)---简单使用 学习要点: 1.创建一张HTML页面 2.<Script>标签解析 3.JS代码嵌入的一些问题 一.创建一张HTML页面 <!DOCTYPE ...
- Javascript学习-简单测试环境
Javascript学习-简单测试环境 在<JavaScript忍者秘籍>2.4测试条件基础知识中,作者给出了一个精简版的assert和assert组的实现,对于初学者而言,这无疑是一个很 ...
- 【Css】一个简单的图片库
今天做一个简单的图片库! 其实这个在w3school教程里介绍得很好了,不过看到什么,自己动手做一次,记得也深刻不是. 我们分几步来走: 第一步:先写一个坯子. <html> <he ...
- JavaScript中简单排序总结
JavaScript中简单排序总结 冒泡排序 经典排序算法, 双重for循环 在第二个for循环的时候, j < arr.len -1 -i , 这一步的优化很重要 function bullS ...
- JavaScript 实现简单的 弹出框关闭框
JavaScript 实现简单的 弹出框关闭框 知识点: 1.javaScript 添加HTML标签 2.javaScript 添加HTML标签属性 3.javaScript 追加元素 代码献上: & ...
- 用javascript实现简单的用户登录验证
用javascript实现简单的用户登录验证 <!DOCTYPE html> <html lang="en"> <head> <meta ...
随机推荐
- Spring 事务配置的几种方式
参考:http://www.blogjava.net/robbie/archive/2009/04/05/264003.html http://www.cnblogs.com/appleat/arch ...
- 纯HTML标签详解
HTML标签很多,可是实际上常用的却就那么十几二十个,很多标签的功能渐渐的被大家忽略了.然后,如果在适当的时候,用一用,还是能在一定程序上 给我们的页面设计带来一点小小的方便的.下面这些HTML标签基 ...
- 笔记一、Git服务器【转】
传输协议: 本地传输,SSH协议,Git协议,HTTP协议 git clone /home/git/project.git // 本地clone git ...
- U3D NGUI改变GameObject Activity闪烁的问题
不是关闭再激活GameObject会闪烁,而是再激活时,NGUI渲染步骤不一致导致的闪烁. 并且文字激活后渲染要慢一帧,如果延迟一帧处理,又会导致精灵图片快一帧,图片重叠.这个测试结果不一定准确,先记 ...
- mongodb添加用户和认证
Mongodb默认启动是不带认证,也没有账号,只要能连接上服务就可以对数据库进行各种操作,这样可不行.现在,我们得一步步开启使用用户和认证. 第一步,我们得定位到mongodb的安装目录.我本机的是C ...
- 《OD大数据实战》Hue环境搭建
官网: http://archive.cloudera.com/cdh5/cdh/5/hue-3.7.0-cdh5.3.6/ 一.Hue环境搭建 1. 下载 http://archive.cloude ...
- 投影纹理映射(Projective Texture Mapping)
摘抄“GPU Programming And Cg Language Primer 1rd Edition” 中文名“GPU编程与CG语言之阳春白雪下里巴人” 投影纹理映射( Projective ...
- Machine Learning for hackers读书笔记(八)PCA:构建股票市场指数
library('ggplot2') prices <- read.csv('G:\\dataguru\\ML_for_Hackers\\ML_for_Hackers-master\\08-PC ...
- HDU 2516 (Fabonacci Nim) 取石子游戏
这道题的结论就是,石子的个数为斐波那契数列某一项的时候,先手必败:否则,先手必胜. 结论很简单,但是证明却不是特别容易.找了好几篇博客,发现不一样的也就两篇,但是这两篇给的证明感觉证得不清不楚的,没看 ...
- Codeforces 443 B Kolya and Tandem Repeat【暴力】
题意:给出一个字符串,给出k,可以向该字符串尾部添加k个字符串,求最长的连续重复两次的子串 没有想出来= =不知道最后添加的那k个字符应该怎么处理 后来看了题解,可以先把这k个字符填成'*',再暴力枚 ...