【读书笔记】JavaScript图片库

利用JavaScript来创建图片库的最佳选择:把整个图片库的浏览链接集中安排在图片库主页里,只要用户点击主页的某个图片链接时才把相应的图片传送给他。

源码:
images.html

<!DOCtype html>
<html lang="en">
    <head>
        <meta charset="uft-8">
        <title>image gallery</title>
        <link rel="stylesheet" type="text/css" href="layout.css" media="screen" />

    </head>
        <body>
            <h1>Snapshots</h1>
            <ul>
                <li>
                    <a href="images/1.jpg" title="A fireworks display" onclick="showPic(this); return false;">firework</a>
                </li>
                <li>
                    <a href="images/2.jpg" title="A cup of black coffee " onclick="showPic(this); return false;">Coffee</a>
                </li>
                <li>
                    <a href="images/3.jpg" title="A red rose" onclick="showPic(this); return false;">Rose</a>
                </li>
                <li>
                    <a href="images/4.jpg" title="The famous clock" onclick="showPic(this); return false;">big ben</a>
                </li>
            </ul>
            <image id="placeholder" src="images/placeholder.jpg" alt="my image gallery"/>
            <p id="description">choose an image.</p>
            <script src="showPic.js"></script>
        </body>
</html>

在此网页需要通过“占位符”图片给主页上图片预留一个浏览区域;在点击某个链接时,拦截这个网页的默认行为并且将占位符图片替换。

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: 0;
}
li{
    float: left;
    padding: 1em;
    list-style:none;
}
img{
    display: block;
    clear:both;//添加浮动时需要清除浮动
}

showPic.js

function showPic(whichpic){
    var source=whichpic.getAttribute("href");
    var placeholder=document.getElementById("placeholder");
    placeholder.setAttribute("src",source);
    var text=whichpic.getAttribute("title");
    var description=document.getElementById("description");
    description.firstChild.nodeValue=text;

}
1.获取元素:

有三种DOM方法来获取元素节点,分别通过元素ID、通过标签名字和类名字来获取。

getElementById(id):返回一个有着给定id属性值的元素节点对应的对象;

getElementByTagName(tag):返回一个对象数组,每个对象分别对应着文档里给定标签的一个元素,是只有一个参数的函数。参数是标签的名字。

getElementByClassName(class):通过class属性中的类名来访问元素。这是HTML5 DOM中新增的方法。
2.获取和设置属性:
object.getAttribute(attribute):getAttribute方法不属于document对象,智能通过元素节点对象调用。

object.setAttribute(attribute,value):它允许我们对属性节点做出修改。

ps:通过setAttribute对文档做出修改后,在通过浏览器的view source(查看源代码)看到的认识改变前的属性值,setAttribute的修改不会反映在文档本身的源代码中。

DOM的工作模式:先加载文档的静态内容,再动态刷新,动态刷新不影响文章的静态内容。(即对页面内容进行刷新时却不需要在浏览器里刷新页面)

3.事件处理函数及其扩展:

事件处理函数,在特定时刻发生时调用特定的JavaScript代码。

鼠标悬停在某个元素上时触发一个动作:onmouseover事件处理函数;
鼠标离开某个元素上时触发一个动作:onmouseout事件处理函数;
在用户点击某个链接时触发一个动作,使用onclick事件处理函数;

对这个函数进行扩展:

  • element.childNodes属性:获取任何一个元素的所有子元素。
function countBodyChildrem(){
    var body_element=document.getElementByTagName("body")[0];
    alert(body_element.childNodes.length);
}
  • nodeType属性
    node.nodeType,nodeType的值为一个数字,nodeType属性共有12种可屈指,有三种具有实用价值。
元素节点的nodeType属性值是1;
属性节点的nodeType属性值为2;
文本节点的nodeType属性值为3
  • nodeValue属性
    node.nodeValue用来改变一个文本的节点的值。

  • firstChild和lastChild属性
    firstChild是childNodes的第一个元素,lastChild是childNodes的最后一个元素。node.firstChild等价于node.nodeValue[0]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值