博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript网站设计实践(五)编写photos.html页面,实现点击缩略图显示大图的效果...
阅读量:6832 次
发布时间:2019-06-26

本文共 2995 字,大约阅读时间需要 9 分钟。

一、photos.html页面,点击每一张缩略图,就在占位符的位置那里,显示对应的大图。

看到的页面效果是这样的:

 

1、实现思路

这个功能在之前的JavaScript美术馆那里已经实现了。

首先在页面中使用ul列表显示出所有的缩略图,然后使用JavaScript,for循环检查出当前点击的是哪一张图片,最后把这张图片给显示出来。

用到三个函数:显示图片函数、创建占位符预装图片、点击显示图片

2、代码

(1)制作四张400px*300px的图片,然后把这四张图片缩小到100*100px的缩略图。把这八张图片都放进images/photos的文件夹里。

(2)新建一个photos.html

首先,把template.html的代码拷贝到photos.html中;

然后,讲div为content的部分替换为如下:

Photos of the band

  • 漂亮的图片
  • 漂亮的图片
  • 漂亮的图片
  • 漂亮的图片

 

3、修改webdesign.css样式

追加如下样式:#imagegallery li{

                      display:inline;      

                    }

 

4、创建photos.js。用来编写photos页面的js效果

/***********************显示图片*********************/function showPic(whichpic){    //浏览器  对象检测    if(!document.getElementById("placeholder")) return false;        //获取元素    var source = whichpic.getAttribute("href");    var placeholder = document.getElementById("placeholder");        //显示图片    placeholder.setAttribute("src",source);                             //把当前图片的src赋值给占位符图片        //设置显示描述图片的文字    if(!document.getElementById("description")) return false;    if(whichpic.getAttribute("title")){        var text = whichpic.getAttribute("title");    }else{        var text = "";    }    var description = document.getElementById("description");    if(description.firstChild.nodeType == 3){        description.firstChild.nodeValue = text;    }    return false;}/***************创建定位符预装图片***********************/function preparePlaceholder(){    //浏览器对象检测    if(!document.getElementById) return false;    if(!document.createTextNode) return false;    if(!document.createElement) return false;    if(!document.getElementById("imagegallery")) return false;        //设置新创建元素的属性    var placeholder = document.createElement("img");    placeholder.setAttribute("id","placeholder");    placeholder.setAttribute("src","./images/placeholder.png");    placeholder.setAttribute("alt","我的图片");    var description = document.createElement("p");    description.setAttribute("id","description");    var desctext = document.createTextNode("请选择一张图片:");    description.appendChild(desctext);        //挂载显示新创建元素    var gallery = document.getElementById("imagegallery");    insertAfter(description,gallery);    insertAfter(placeholder,description);}/***************点击,显示图片*************************/function prepareGallery(){    //对象检测    if(!document.getElementById) return false;    if(!document.getElementsByTagName) return false;    if(!document.getElementById("imagegallery")) return false;        //获取元素    var gallery = document.getElementById("imagegallery");    var links = document.getElementsByTagName("a");        //显示当前图片(for循环实现)    for(var i=0; i

 

5、打开浏览器浏览,看到效果,photos页面ok啦!

二、学与思

1、li的样式设置为inline

#imagegallery li{

                      display:inline;      

                    }

块级元素变成行内元素,这样子所有的li就能水平显示。

2、nodeType==3为文本节点类型

description.firstChild.nodeType == 3

 

 

 

转载地址:http://jbtkl.baihongyu.com/

你可能感兴趣的文章
ODAC(V9.5.15) 学习笔记(十九)主键值自动生成
查看>>
MVC4 WebApi开发中如果想支持Session请做好如下几个方面的问题
查看>>
Android中View绘制流程以及invalidate()等相关方法分析
查看>>
nicehair
查看>>
Hibernate工作原理
查看>>
《双龍形态操盘秘笈》
查看>>
怎样查看apk须要支持的Android版本号
查看>>
各种机械键盘轴线之间的差究竟好轴
查看>>
攻略三战的完美体验3Castle Fantisia阿兰·梅希亚战争艾伦西战记它包含重做版本(这是新的艾伦·梅希亚大战)...
查看>>
reveal 使用注意事项
查看>>
Objective-C语法之NSSortDescriptor
查看>>
国内外研究主页集合:计算机视觉-机器学习-模式识别
查看>>
混乱的url编码||URL编码解码问题
查看>>
VSTO之旅系列(一):VSTO入门
查看>>
随笔1
查看>>
ORACLE触发特定的解释
查看>>
不错的一篇关于强迫症的文章
查看>>
Cookie和Session(转)
查看>>
纠结的问题
查看>>
SpannableString的一个奇怪的问题
查看>>