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. [转]SecureCRT右键粘贴的设置

    1.习惯用putty的朋友,一般都习惯鼠标右键自动粘贴的功能,对于SecureCRT6.0.2 ,这个功能也已经是默认配置了. 老版本的SecureCRT其实也有这个功能,只是不是默认设置,很多人不知 ...

  2. [Python Web]部署完网站需要做的一些后续工作

    简述 今天上线了一个简单的 Page,没有什么功能就是一个展示页. 但是,我发现部署完,上线后,还要弄不少东西.下面就是我记录.整理的一些上线网站基本都会用到的网站和配置. 加入统计代码 这个是必做的 ...

  3. 优化Servlet:(利用反射的思想)

    1.创建BaseServlet (重写父类的service方法) package com.learning.web.servlet; import java.io.IOException; impor ...

  4. metools,不花一分钱就能拥有自己的工具站点?

    需要[加密/解密][编码/解码][生成二维码]的时候不用再进百度点广告~ 也不需要去收藏夹找网址~ 我的目的大概就是如此. 项目地址:https://github.com/yimogit/metool ...

  5. (一)一起学 Java Collections Framework 源码之 概述

    . . . . . 目录 (一)一起学 Java Collections Framework 源码之 概述 JDK 中很多类 LZ 已经使用了无数次,但认认真真从源码级研究过其原理的还只占少数,虽然从 ...

  6. MVC实现SSO

    近来工作无事,想做个SSO, 之前做过一个项目用到SSO,自己也没有看明白是个什么东西.现在正好有时间,所以想研究下. 先是从网上看到了SSO的思路: 三个站点:SiteA,SiteB,SiteMai ...

  7. POJ 3294 出现在至少K个字符串中的子串

    在掌握POJ 2774(两个串求最长公共子串)以及对Height数组分组后,本题还是容易想出思路的. 首先用字符集外的不同字符连接所有串,这是为了防止两个后缀在比较时超过某个字符串的分界.二分子串的长 ...

  8. Python的内置函数open()的注意事项

    用法 : open("file_address","open_mode")例子 : f = open("D:\PycharmProjects\log. ...

  9. Android SQLite与ListView的简单使用

    2017-04-25 初写博客有很多地方都有不足,希望各位大神给点建议. 回归主题,这次简单的给大家介绍一下Android SQLite与ListView的简单使用sqlite在上节中有介绍,所以在这 ...

  10. summerDao-比mybatis更强大无需映射配置的dao工具

    summerDao是summer框架中的一个数据库操作工具,项目地址:http://git.oschina.net/xiwa/summer. 怎么比mybatis更强大,怎么比beetlsql更简单, ...