思路:

无序列表加载图片文件。用img标签加载一张图片作为占位符。当点击照片链接时,改变<a>元素的href属性。并且阻止浏览器的默认行为。

动态改变描述文字,在图片下方增加P标签。通过获取p标签内容,换成图片的title属性。

用到JS的DOM属性:

childNodes:获取父节点下的所有子节点

nodeType:节点属性

{

元素节点的属性值是:1;

属性节点的属性值是:2;

文本节点的属性值是:3;

}

nodeValue    改变文本节点的值(p元素本身是null值,获取p元素子节点其实是第一个子节点的nodeValue值)

firstChild   第一个子元素

lastChild    第二个子元素.

源码:

<body>
<h1>Snapshots</h1>
<ul>
<li><a href="bassist.jpg" title='第一张' onclick='showpic(this); return false;' >bassist</a></li>
<li><a href="concert.jpg" title='第二张' onclick='showpic(this); return false;'>concert</a></li>
<li><a href="crowd.jpg" title='第三张' onclick='showpic(this); return false;'>crowd</a></li>
<li><a href="guitarist.jpg" title='第四张' onclick='showpic(this); return false;'>guitarist</a></li>
</ul>
<img id='placeholder' src="placehoder.jpg" >
<p id='description'>choose an img </p>
</body>

编写showpic函数:

Function showpic(whichpic){
Var placeholder = document.getElementById(‘placeholder’);
Var souce = whichpic.getAttribute(‘href’);
Placeholder.setAttribute(‘src’,’souce’);
Var text = whichpic.getAttribute(‘title’);
Var description = document.getElementById(‘description’);
description.firstChild.nodeValue = text
}

总结:

重点在于事情处理函数,因为showpic需要一个参数,:一个带有href属性的元素节点参数,所以当把onclick事件处理函数嵌入到一个链接中时,需要把这个链接本身用作showpic函数的参数,所以要使用‘ this’关键字。

效果:

Javascript实现图片库效果的更多相关文章

  1. JavaScript 省市级联效果

    JavaScript 省市级联效果 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...

  2. Rainyday.js – 使用 JavaScript 实现雨滴效果

    Rainyday.js 背后的想法是创建一个 JavaScript 库,利用 HTML5 Canvas 渲染一个雨滴落在玻璃表面的动画.Rainyday.js 有功能可扩展的 API,例如碰撞检测和易 ...

  3. JavaScript之放大镜效果2

    在放大图片效果的同时,我们怎么原图和放大窗体增加间隔呢? 我们只需应用一个table就行了: 源码上: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML ...

  4. JavaScript之放大镜效果

    在网上也浏览过许多关于JavaScript放大镜效果的文章,有的代码解释得些隐晦难懂,看的我头有点晕晕的╮(╯﹏╰)╭,我的心情是这样的: 吐槽完了,我们动动小鼠标,当鼠标经过下面这张美女图片时就实现 ...

  5. JavaScript实现动画效果

    说到JavaScript实现动画效果,不得不想到两个函数,setTimeout和setInterval. setTimeout的常用的使用方法为 setTimeout(callback, delay) ...

  6. javascript瀑布流效果

    javascript瀑布流效果 其实javascript瀑布流 前几年都已经很流行了(特别是美丽说,蘑菇街),最近看到网上有人问这个瀑布流效果,所以自己有空的时候就研究了下,其实也是研究别人的代码,研 ...

  7. javascript跟随滚动效果插件代码(javascript Follow Plugin)

    这篇文章介绍了javascript跟随滚动效果插件代码(javascript Follow Plugin),有需要的朋友可以参考一下Js 跟随滚动效果插件支持定义多个跟随ID,采用css fixed属 ...

  8. Javascript 广告浮动效果在浏览器中间N秒后移动到右下角

    Javascript 广告浮动效果在浏览器中间N秒后移动到右下角 闲着无聊做了一个,本人原创...就是这个页面的广告效果....怎么样???? 刚刚学习的javascript

  9. javascript图片放大镜效果展示

    javascript图片放大镜效果展示 <!DOCTYPE html> <html> <head lang="en"> <meta cha ...

随机推荐

  1. 冒烟测试、α测试、Beta测试、性能测试

    “冒烟测试”(也可称为showcase)这一术语描述的是在将代码更改嵌入到产品的源树中之前对这些更改进行验证的过程. 冒烟测试(smoke test)在测试中发现问题,找到了一个Bug,然后开发人员会 ...

  2. HDOJ/HDU 1256 画8(绞下思维~水题)

    Problem Description 谁画8画的好,画的快,今后就发的快,学业发达,事业发达,祝大家发,发,发. Input 输入的第一行为一个整数N,表示后面有N组数据. 每组数据中有一个字符和一 ...

  3. [CODEVS3641]上帝选人

    题目描述 Description 世界上的人都有智商IQ和情商EQ.我们用两个数字来表示人的智商和情商,数字大就代表其相应智商或情商高.现在你面前有N个人,这N个人的智商和情商均已知,请你选择出尽量多 ...

  4. Java项目中基于Hibernate分页总结

    1,First of all,  we should have a wrapper class for page,this class can calculate the startRow by th ...

  5. numpy note_1

    tile(A,reps) 通过重复 reps次数的A 创建一个数组 examples: >>> a = np.array([0, 1, 2]) >>> np.til ...

  6. jQuery技术内幕预览版.pdf3

    jQuery.fn.init(selector,context,rootjQuery):构造函数 jQuery.fn.init() 负责解析参数 selector 和 context 的类型,并执行相 ...

  7. mysql 备份与还原

    http://dev.yesky.com/281/35291281.shtml 每一种逻辑错误发生的概率都极低,但是当多种可能性叠加的时候,小概率事件就 放大成很大的安全隐患,这时候备份的必要性就凸显 ...

  8. AVL树的左旋右旋理解 (转)

    AVL树是最先发明的自平衡二叉查找树.在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树.查找.插入和删除在平均和最坏情况下都是O(log n).增加和删除可能需要通过一次或多 ...

  9. Title Case

    地址:http://www.codewars.com/kata/5202ef17a402dd033c000009/train/python 题目: A string is considered to ...

  10. Spark 1.0.0版本号公布

    前言 今天Spark最终跨出了里程碑的一步,1.0.0版本号的公布标志着Spark已经进入1.0时代.1.0.0版本号不仅增加了非常多新特性,而且提供了更好的API支持.Spark SQL作为一个新的 ...