Hi All,

分享一个通过JS来显示相应图片的详细信息。

需求:进入页面时,动态加载图片信息;当鼠标移动到某一图片上时,则显示该图片的大图片并显示相应说明信息;当鼠标移开图片时,清除新创建的元素。

1. 用HTML画好布局:

1 <body onload="initEvent()">
2 <div id="peopleInfo" style="position:absolute; top:20%; left:30%;">
3 <h2>人员信息:</h2>
4 </div>
5 </body>

2. 用CSS为新创建的元素的添加样式:

     <style type="text/css">
.newDiv {
position:absolute;
width:200px;
height:200px;
border: 1px solid blue;
}
.newImg {
position:absolute;
width:100px;
height:100px;
margin: 2px 2px;
}
.newlbName {
float:right;
color:red;
margin-right:40px;
margin-top: 20px;
}
.newlbHight {
float:right;
color:red;
margin-right:-42px;
margin-top: 50px;
}
.lbDescription {
position:absolute;
font: normal 24px Arial, Helvetica, sans-serif;
color:black;
top:110px;
left:20px;
padding: 8px 1px;
}
</style>

3. 用JS控制行为:

 <script type="text/javascript">
var data = { // 数据源
"/Imgs/katong_4_1440x900.jpg": ["苏童", "158cm", "温柔,委婉"],
"/Imgs/katong_2_1440x900.jpg": ["紫童", "172cm", "性格率真"],
"/Imgs/katong_5_1440x900.jpg": ["小倩", "165cm", "爱好广泛"],
"/Imgs/katong_3_1440x900.jpg": ["顺姬", "158cm", "美丽,大方"]
}; function initEvent() { // load事件触发initEvent()方法
var div = document.getElementById("peopleInfo");
var table = document.createElement("table");
var count = 0;
for (var key in data) { // 动态加载图片详细
var tr, td, img;
var dataValue = data[key];
td = document.createElement("td");
img = document.createElement("img");
img.id = count;
img.setAttribute("src", key);
img.setAttribute("alt1", key);
img.setAttribute("alt2", dataValue[0]);
img.setAttribute("alt3", dataValue[1]);
img.setAttribute("alt4", dataValue[2]);
img.width = '50';
img.height = '50';
img.onmouseover = function () { // 鼠标移动时动态创建相应图片的详细信息
// 动态创建的div,并设置其属性
var newDiv = document.createElement("div");
newDiv.className = "newDiv";
var x = window.event.clientX;
var y = window.event.clientY;
newDiv.style.top = y+"px";
newDiv.style.left = x + "px"; // 动态创建img,并设置相应属性
var newImg = document.createElement("img");
newImg.className = "newImg";
var imgPath = this.getAttribute("alt1").toString();
newImg.src = imgPath;
var name = this.getAttribute("alt2").toString();
var height = this.getAttribute("alt3").toString();
var description=this.getAttribute("alt4").toString(); // 动态创建label,显示姓名信息
var lbName = document.createElement("label");
lbName.className = "newlbName";
lbName.innerText = name;
newDiv.appendChild(lbName); // 动态创建label,显示身高信息
var lbHight = document.createElement("label");
lbHight.className = "newlbHight";
lbHight.innerText = height;
newDiv.appendChild(lbHight); // 动态创建label,显示描述信息
var lbDescription = document.createElement("label");
lbDescription.className = "lbDescription";
lbDescription.innerText = description;
newDiv.appendChild(lbDescription); // 将创建的元素添加到新的div中
newDiv.appendChild(newImg);
document.body.appendChild(newDiv); }
img.onmouseout = function () { //鼠标离开时,移出掉新创建的div元素
var divs = document.getElementsByTagName("div");
for (var i = 0; i < divs.length; i++)
{
var div = divs[i];
if (div.className == "newDiv")
{
document.body.removeChild(div);
}
}
} td.appendChild(img);
if (count % 2 == 0) { // 设置换行
tr = document.createElement("tr");
}
tr.appendChild(td);
table.appendChild(tr);
count++;
}
div.appendChild(table);
}
</script>

4. 显示结果:

一个JS版的例子就好了,大家可以尝试一下 :).

Javascript版-显示相应图片的详细信息的更多相关文章

  1. python 抓取美丽说店铺的宝贝图片及详细信息的实现(爬虫)

    对于页面的抓取,我们使用的是requests,现在大部分的网站都支持动态加载,我们在firefox f12后查找动态的url :http://www.meilishuo.com/aj/shop_lis ...

  2. Exif.js获取图片的详细信息(苹果手机移动端上传图片旋转90度)

    Exif.js插件介绍 http://code.ciaoca.com/javascript/exif-js/ iOS手机竖着拍的照片经过前端处理之后被旋转了90°的原因以及解决方案 https://w ...

  3. VC++ 在Watch窗口显示GetLastError值以及详细信息

    You can display the value GetLastError() will return by putting "@err" in your watch windo ...

  4. 大家的备忘录——xpage_在同一页面展开文档显示该文档详细信息(可显示处理过的Rich Text)

    Xpage大纲: 解析: 1.通过[link2]点击触发jQuery事件来展开[面板:thispanel] 2.[面板:thispanel]写了onClientLoad事件:让thispanel隐藏. ...

  5. easyUI 展开DataGrid里面的行显示详细信息

    http://blog.csdn.net/yanghongchang_/article/details/7854156原著 datagrid 可以改变它的view(视图)去显示不同的效果.使用详细视图 ...

  6. 单击HighCharts柱形体弹框显示详细信息

    上篇博客介绍了如何在HighCharts统计图表下生成表格,二者相互结合,可以对数据进行更好的统计分析.在统计的同时,如果需要想要及时查看详细信息的话,就得再加一个功能,就是单击柱形体,显示该项下的详 ...

  7. Display a Detail View with a List View 主子视图-列表视图与详细信息视图同时显示

    In this lesson, you will learn how to display a Detail View together with a List View. For this purp ...

  8. 最简单的方法是使用标准的 Linux GUI 程序之一: i-nex 收集硬件信息,并且类似于 Windows 下流行的 CPU-Z 的显示。 HardInfo 显示硬件具体信息,甚至包括一组八个的流行的性能基准程序,你可以用它们评估你的系统性能。 KInfoCenter 和 Lshw 也能够显示硬件的详细信息,并且可以从许多软件仓库中获取。

    最简单的方法是使用标准的 Linux GUI 程序之一: i-nex 收集硬件信息,并且类似于 Windows 下流行的 CPU-Z 的显示. HardInfo 显示硬件具体信息,甚至包括一组八个的流 ...

  9. Linux 查找指定名称的进程并显示进程详细信息

    实际应用中可能有这样的场景:给定一个进程名称特征串,查找所有匹配该进程名称的进程的详细信息. 解决的办法是: (1) 先用pgrep [str] 命令进行模糊匹配,找到匹配该特征串的进程ID: (2) ...

随机推荐

  1. maven私服搭建nexus介绍(二)

    1.各个仓库介绍 Hosted:宿主仓库 主要放本公司开发的SNAPSHOTS测试版本,RELEASES正式发行版.合作公司第三方的jar包. Proxy:代理仓库 代理中央仓库:代理Apache下测 ...

  2. 时间同步方法及几个可用的NTP服务器地址

    大家都知道计算机电脑的时间是由一块电池供电保持的,而且准确度比较差经常出现走时不准的时候.通过互联网络上发布的一些公用网络时间服务器NTP server,就可以实现自动.定期的同步本机标准时间. 依靠 ...

  3. 日志框架SLF4J

    1.什么是SLF4J SLF4J:Simple Logging Facade for Java,为java提供的简单日志Facade.Facade门面,更底层一点说就是接口.它允许用户以自己的喜好,在 ...

  4. HTTP笔记

    "你知道当我们在网页浏览器(Web browser)的地址栏中输入 URL 时,Web 页面是如何呈现的吗?" HTTP协议 HTTP协议(HyperText Transfer P ...

  5. LeetCode 84. Largest Rectangle in Histogram 直方图里的最大长方形

    原题 Given n non-negative integers representing the histogram's bar height where the width of each bar ...

  6. JS实现排序

    排序算法可以分为内部排序和外部排序.内部排序是数据记录在内存中进行排序,外部排序是因排序的数据很大,一次不能够容纳全部的排序记录,在排序中需要访问外存.常见的内部排序算法有插入排序,选择排序,冒泡排序 ...

  7. bzoj2144 【国家集训队2011】跳跳棋

    Description 跳跳棋是在一条数轴上进行的.棋子只能摆在整点上.每个点不能摆超过一个棋子.我们用跳跳棋来做一个简单的游戏:棋盘上有3颗棋子,分别在a,b,c这三个位置.我们要通过最少的跳动把他 ...

  8. FrameBuffer系列 之 介绍

    1.     来由 FrameBuffer是出现在2.2.xx内核当中的一种驱动程序接口.Linux工作在保护模式下,所以用户态进程是无法象 DOS 那样使用显卡 BIOS里提供的中断调用来实现直接写 ...

  9. [进程管理] 理解 Linux 的处理器负载均值

    原文链接: http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages http://www.gracecode. ...

  10. object detection技术演进:RCNN、Fast RCNN、Faster RCNN

    object detection我的理解,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别.object detection要解决的问题就是物体在哪里,是什么这整个流程的问题.然而,这个问题 ...