A JavaScript Image Gallery

childNodes property:

The childNodes property is a way of getting information about the children of any element in a

document‘s node tree. It returns an array containing all the children of an element node :

element.childNodes;

Lets say you wanted to get all the children of the body element.

var body_element = document.getElementsByTagName("body")[0];

To access the children of the body element, you just need to use :

body_element.childNodes;

you may write a function to find out how many elements the body element contains :

 function countBodyChildren() {
       var body_element = document.getElementsByTagName("body")[0] ;
       alert( body_element.childNodes.length );
 }

If you want this function to be excuted when the page loads, you can use the onload event handler

to do this.

window.onload = countBodyChildren ;

When the document loads, the countBodyChildren function will be invoked.


nodeType property :

This will tell us exactly what kind of node we‘re dealing with.

The nodeType property is called with the following syntax :

node.nodeType

instead of returning a string like "element" or "attribute", it returns a number.

There are 12 possible values for nodeType, but only 3 of them are going to be of much practical use:

  • Element nodes have a nodeType value of 1
  • Attribute nodes have a nodeType value of 2
  • Text nodes have a nodeType value of 3

nodeValue property :

If you want to change the value of a text node, there is a DOM property called nodeValue that can be

used to get (and set) the value of a node :

node.nodeValue

firstChild and lastChild property :

node.firstChild  ==  node.childNodes[0]

node.lastChild   ==  node.childNodes[node.childNodes.length-1]


This image gallery projects are as follws :

/***      index.html      ***/

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Image Gallery</title>
    <link rel="stylesheet" href="styles/layout.css" media="screen">
</head>
<body>

    <h1>Snapshiots</h1>
    <ul>
        <li>
            <a href="images/fireworks.jpg" title="A fireworks display" onclick="showPic(this); return false;"> Fireworks </a>
        </li>
        <li>
            <a href="images/coffee.jpg" title="A cup of black coffe" onclick="showPic(this); return false;"> Coffee </a>
        </li>
        <li>
            <a href="images/rose.jpg" title="A red, red rose" onclick="showPic(this); return false;"> Rose </a>
        </li>
        <li>
            <a href="images/bigben.jpg" title="The famous clock" onclick="showPic(this); return false;"> Big Ben </a>
        </li>
    </ul>
    <div id="placeholder">
        <img src="images/placeholder.gif" alt="my image gallery" >
    </div>
    <div id="description">
        <p>Choose an image</p>
    </div>

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

    <script type="application/javascript">
//        alert (description.childNodes.length);
//        window.onload = countBodyChildren;
//var description = document.getElementById("description");
//alert (description.childNodes[2].nodeValue);
    </script>
</body>
</html>

/***      showPic.js      ***/

/**
 * Created by Administrator on 9/9/2015.
 */

/*
    you can use this function to count how many children nodes the body element contains
 */
function countBodyChildren() {
    var body_element = document.getElementsByTagName("body")[0];
    alert(body_element.nodeType);
    alert( body_element.childNodes.length );
}

function showPic(whicPic) {
    var source = whicPic.getAttribute("href");
    var text = whicPic.getAttribute("title");

    var placeholder = document.getElementById("placeholder");
    var img = placeholder.getElementsByTagName("img")[0];
    img.setAttribute("src", source);

    var description = document.getElementById("description");
    var desc_p = description.getElementsByTagName("p")[0];
    desc_p.firstChild.nodeValue = text;

}

/***      layout.css      ***/

body{
    font-family: "Helvetica", "Arial", serif;
    color: #333;
    background-color: #ccc;
    margin: 1em 10%;
}

h1{
    color: #333;
    /*background-color: #777;*/
}

a{
    color: #c60;
    background-color: transparent;
    font-weight: bold;
    text-decoration: none;
}

ul{
    padding: 0;
}

li{
    float: left;
    padding: 1em;
    list-style: none;
}

img {
    display: block;
    clear: both;
}

The structure are like the pic shows below :

时间: 2024-07-31 14:35:11

A JavaScript Image Gallery的相关文章

Javascript Image Gallery 修改

文件目录: 其中,所需的只有 showPic2.js & gallery2.html & gallery2.css & images gallery2.html : <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>Image Gallery</title> <link rel="stylesheet&q

Javascript Images Gallery

文件目录: gallery.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>Image Gallery</title> <style type="text/css"> body{ font-family: "Helvetica","Arial","se

35 Gallery – Ajax Slide

http://html5up.net/overflow (PC,Mobile,Table) http://www.iloveyouwp.com/35-scripts-for-galleries-slideshows-and-lightboxes.htmlhttp://ajaxphotogallery.com/ajax-image-galleries.htmlhttp://coffeescript.org/http://www.lokeshdhakar.com/projects/lightbox2

Free Slideshow, Gallery And Lightboxes Scripts

http://www.noupe.com/design/free-slideshow-gallery-and-lightboxes-scripts.html October 14th, 2009 by Obaid ur Rehman Free Slideshows And Lightboxes Scripts Polaroid Gallery v.1.01Polaroid Gallery is a free open-source Flash gallery developed by Chris

Learning JavaScript Design Patterns -- A book by Addy Osmani

Learning JavaScript Design Patterns A book by Addy Osmani Volume 1.6.2 Tweet Copyright © Addy Osmani 2015. Learning JavaScript Design Patterns is released under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 unported license. It

javascript图片库

将图片发布到网上的办法很多,可以简单地把所有图片都放在一个网页中,但是会导致这个网页过于庞大.为每张图片分别创建一个网页的解决办法值得考虑,但是制作过程需要花费非常多的时间和精力. 如果想要两全其美,那我有一种方法,利用JavaScript制作一个图片库,把整个图片库的浏览链接到图片库主页,用户点击某个链接时,那张图片才会且在本页面显示. html文件的编写 <html xmlns="http://www.w3.org/1999/xhtml"><head><

平稳退化,JS和HTML标记分离,极致性能的JavaScript图片库

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>JavaScript图片库</title> 6 <script type="text/javascript"> 7 <!--平稳退化,JS和HTML标记分离,极致性能的JS图片库--> 8 fu

JavaScript模块加载框架sea.js 学习一

简单总结sea.js 学习 文件目录结构 /sea/sea.js      下载地址  http://seajs.org/docs/#downloads /sea/jquery-sea.js   下载地址 http://jquery.com/download/ /sea/sea_config.js /sea/home.jsdata.js /sea/data.js 1.html页面代码文件 <style> .ch{height:200px;width:200px;background:#ccc;

Javascript 动态添加节点(thinking in DOM)

test.html & example.js 文件说明了传统技术:document.write & innerHTML 的用法 test.html: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title> Test </title> </head> <body> <div id="testd