前言:百度了一下html map,嗯嗯,介绍的挺详细的,如果是初学者,直接看他们的教程,挺好的,就不用我再多说了。

不过我发现一个问题,就是都是介绍map有什么属性怎么用的,这明显就是照搬文档自己再改一下嘛,难道你们在使用中没遇到什么特别的需求或者什么问题?怎么不写出来?

所以我就不介绍map了,直接说遇到的问题。

问题一:如果图片原始尺寸是900px,但是你展示的尺寸是450px,那map就定位不准了,怎么破?

问题二:如果一个页面有多张图片需要map,怎么做?

一、素材图片:

1、这是一张900px的素材图片,我们要让右下角4个小圆图标可以点击。

二、HTML结构:

1、coords的对应坐标不用变,只需在JS里面改变其比例就OK!

 <div class="map_img">
<img class="mapImg" usemap="mapName" src="isphoto/abc.png" alt="" style="width: 450px">
<map name="mapName">
<!-- 方形区域写法 -->
<!-- <area shape="rect" coords="605,250,660,305" target="_blank" href ="javascript:alert(1);" alt=""/> -->
<area shape="circle" coords="633,276,28" target="_blank" href ="javascript:alert('汽车图标');" alt=""/>
</map>
</div>

2、如果有多张图片,一张图片对应一个map,class不用变,改变map的name值和对应的usemap值就好。name=usemap他们俩是一对CP哦,不要分开它们,给他们一样的值。

 <div class="map_img">
<img class="mapImg" usemap="mapName" src="isphoto/abc.png" alt="" style="width: 450px">
<map name="mapName">
<area shape="circle" coords="633,276,28" target="_blank" href ="javascript:alert('汽车图标');" alt=""/>
</map>
<!-- 一张图片对应一个name和usemap -->
<img class="mapImg" usemap="mapName2" src="isphoto/abc.png" alt="" style="width: 450px">
<map name="mapName2">
<area shape="circle" coords="633,276,28" target="_blank" href ="javascript:alert('第二张图的汽车图标');" alt=""/>
</map>
</div>

三、样式表:

  !@#¥%……&*?(404)

四、JS设置图片的比例:( 记得引用jquery: <script src='http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js'></script> )

 // 设置 图片热点区域
function set_map() {
var mapD = $('area'); //获取页面所有的热点区域
var imgW = $('.mapImg')[0].naturalWidth || 900; //图片原始尺寸
var imgW01 = $('.mapImg')[0].innerWidth || 450; //图片现在尺寸
var Multiple = imgW01 / imgW; //对应比例
var _arrS = ''; //存放coords的值
var _arr = []; //存放coords对应的值
for (var i = 0; i < mapD.length; i++) { //热点区域的个数
_arr = [];
_arrS = $(mapD[i]).attr('coords');
_arr = _arrS.split(',');
//coords值的个数,圆形为3个,方形为4个
for (var j = 0; j < _arr.length; j++) {
_arr[j] = _arr[j] * Multiple;
}
_arrS = _arr.join(',');
// 把缩放比例后对应的coords,赋值给原有coords
$(mapD[i]).attr('coords',_arrS);
}
}
set_map();

五、总结:

细心的童鞋就会发现,为什么别人给图片都是加ID而我却加class,原因是为了方便多张缩放过的图片使用map定位。额...... 多读几遍就懂!

六、课后作业:

把剩余的三个小圆图标的坐标标出来,并测试没问题?(提示:用PS的 矩形选框工具+信息 可以很容易就找到对应的坐标)

Html5的map在实际使用中遇到的问题及解决方案的更多相关文章

  1. vcftools报错:Writing PLINK PED and MAP files ... Error: Could not open temporary file.解决方案

    一般来说有两种解决方案. 第一种:添加“--plink-tped”参数: 用vcftools的“--plink”参数生成plink格式文件时,小样本量测试可以正常生成plink格式,用大样本量时产生W ...

  2. 07. Web大前端时代之:HTML5+CSS3入门系列~H5 地理位置

    Web大前端时代之:HTML5+CSS3入门系列:http://www.cnblogs.com/dunitian/p/5121725.html 源码:https://github.com/duniti ...

  3. Google map API V3

    本文主要总结Google map API V3使用中最简单也是最常见的一些操作以及相关概念,如果需要更加详细的信息,请直接阅读Google提供的关于map的文档. google map api v3文 ...

  4. [转]25个HTML5和JavaScript游戏引擎库

    本文转自:http://www.open-open.com/news/view/27c6ed 1. The GMP JavaScript Game Engine GMP是一个基于精灵2-D游戏,它可以 ...

  5. Monotype推出基于HTML5的Web字体平台

    著名字体公司Monotype近日宣布推出基于HTML5的Web字体平台,设计者可以访问近10万字体的目录. Monotype推出基于HTML5的Web字体平台 Monotype推出基于HTML5的We ...

  6. HTML5详解(一)

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. HTML5的介绍 Web 技术发展时间线 1991 HTML 1994 ...

  7. HTML5外包注意事项-开发HTML5游戏的九大坑与解决方法剖析

    随着移动社区兴起,势必带动HTML5的革命.未来一两年内,HTML5移动游戏必将呈现大爆发趋势. 以下是整理的HTML5游戏研发.市场趋势以及渠道布局和技术解决方案的内容.希望大家能从本文中找到对HT ...

  8. HTML5详解

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. HTML5的介绍 Web 技术发展时间线 1991 HTML 1994 ...

  9. HTML5游戏引擎深度测评

    https://zhuanlan.zhihu.com/p/20768495 最近看到网上一篇文章,标题叫做<2016年 最火的 15 款 HTML5 游戏引擎>.目前针对HTML5游戏的解 ...

随机推荐

  1. 题解 P3252 【[JLOI2012]树】

    \(\Huge{[JLOI2012]树}\) 题目描述 在这个问题中,给定一个值S和一棵树.在树的每个节点有一个正整数,问有多少条路径的节点总和达到S.路径中节点的深度必须是升序的.假设节点1是根节点 ...

  2. SqlServer批量插入(SqlBulkCopy、表值参数)

    之前做项目需要用到数据库的批量插入,于是就研究了一下,现在做个总结. 创建了一个用来测试的Student表: CREATE TABLE [dbo].[Student]( [ID] [int] PRIM ...

  3. Android Studio 常用应用

    1.在控制台的Logcat中输出测试语句 package com.example.lucky.helloworld; import android.support.v7.app.AppCompatAc ...

  4. Android 程序调试技巧汇总

    1.Android Studio 引入一个项目作为library https://www.cnblogs.com/lixiangyang521/p/7453322.html 2.Android Stu ...

  5. 108th LeetCode Weekly Contest Binary Subarrays With Sum

    In an array A of 0s and 1s, how many non-empty subarrays have sum S? Example 1: Input: A = [1,0,1,0, ...

  6. BZOJ - 2115 独立回路 线性基

    题意:给定一个图集\((V,E)\),求路径\(1...n\)的最大异或和,其中重复经过的部分也会重复异或 所求既任意一条\(1...n\)的路径的异或和,再异或上任意独立回路的组合的异或和(仔细想想 ...

  7. BZOJ - 2005 莫比乌斯水题

    \(gcd=k+1\)时,每一个的贡献都是\(2k+1\) \(gcd=1\)时,每一个贡献为\(1\) #include<iostream> #include<algorithm& ...

  8. SQL语句练习45题(从第11题开始)

    CREATE TABLE student (sno VARCHAR(3) NOT NULL, sname VARCHAR(4) NOT NULL, ssex VARCHAR(2) NOT NULL, ...

  9. sql常用格式化函数及字符串函数

    一.常用格式化函数 1.日期转字符串 select to_char(current_timestamp, 'YYYY-MM-DD HH24:MI:SS') YYYY:年份 MM:月份号(01-12) ...

  10. 使用Serva通过网络PXE方式安装Windows10/CentOS

    下载Servahttp://www.vercot.com/~serva/download.html也可以从本文附件下载Serva_Community_64_v3.0.0.zip,这是社区版,使用50m ...