Html5的map在实际使用中遇到的问题及解决方案
前言:百度了一下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在实际使用中遇到的问题及解决方案的更多相关文章
- vcftools报错:Writing PLINK PED and MAP files ... Error: Could not open temporary file.解决方案
一般来说有两种解决方案. 第一种:添加“--plink-tped”参数: 用vcftools的“--plink”参数生成plink格式文件时,小样本量测试可以正常生成plink格式,用大样本量时产生W ...
- 07. Web大前端时代之:HTML5+CSS3入门系列~H5 地理位置
Web大前端时代之:HTML5+CSS3入门系列:http://www.cnblogs.com/dunitian/p/5121725.html 源码:https://github.com/duniti ...
- Google map API V3
本文主要总结Google map API V3使用中最简单也是最常见的一些操作以及相关概念,如果需要更加详细的信息,请直接阅读Google提供的关于map的文档. google map api v3文 ...
- [转]25个HTML5和JavaScript游戏引擎库
本文转自:http://www.open-open.com/news/view/27c6ed 1. The GMP JavaScript Game Engine GMP是一个基于精灵2-D游戏,它可以 ...
- Monotype推出基于HTML5的Web字体平台
著名字体公司Monotype近日宣布推出基于HTML5的Web字体平台,设计者可以访问近10万字体的目录. Monotype推出基于HTML5的Web字体平台 Monotype推出基于HTML5的We ...
- HTML5详解(一)
本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. HTML5的介绍 Web 技术发展时间线 1991 HTML 1994 ...
- HTML5外包注意事项-开发HTML5游戏的九大坑与解决方法剖析
随着移动社区兴起,势必带动HTML5的革命.未来一两年内,HTML5移动游戏必将呈现大爆发趋势. 以下是整理的HTML5游戏研发.市场趋势以及渠道布局和技术解决方案的内容.希望大家能从本文中找到对HT ...
- HTML5详解
本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. HTML5的介绍 Web 技术发展时间线 1991 HTML 1994 ...
- HTML5游戏引擎深度测评
https://zhuanlan.zhihu.com/p/20768495 最近看到网上一篇文章,标题叫做<2016年 最火的 15 款 HTML5 游戏引擎>.目前针对HTML5游戏的解 ...
随机推荐
- <转> django模板语言filter方法
Django的模板是一个简单的文本文件,它可以生成任何文本格式(HTML.XML.CSV等),在本文开始之前先看一个Django模板的例子: 从这个例子中可以看到,模板标签可以是单独出现的,如exte ...
- Wannafly挑战赛26-F. msc的棋盘(模型转化+dp)及一类特殊的网络流问题
题目链接 https://www.nowcoder.com/acm/contest/212/F 题解 我们先考虑如果已知了数组 \(\{a_i\}\) 和 \(\{b_i\}\),如何判断其是否合法. ...
- POJ_1019 Number Sequence 【递推】
题目: A single positive integer i is given. Write a program to find the digit located in the position ...
- Week 3: Structured Types 5. Tuples and Lists Exercise: odd tuples
Exercise: odd tuples 5/5 points (graded) ESTIMATED TIME TO COMPLETE: 5 minutes Write a procedure cal ...
- MongoDB基本语句
1.创建数据库 use 库名 2.查看所有库 show dbs 3.定义一个对象变量,下面挂着数据 4.col 是集合名,如果该集合不在该数据库中, MongoDB 会自动创建该 ...
- HDU - 6186 前缀和位运算
异或操作蒙蔽了我的双眼 以至于没有第一时间想到前缀和与后缀和 水题做的不够多 #include<bits/stdc++.h> #define rep(i,j,k) for(register ...
- sublim text3中的一些设置
{ "dictionary": "Packages/Language - English/en_US.dic", "font_face&q ...
- [转] 理解 JavaScript 的 async/await
[From] https://segmentfault.com/a/1190000007535316 边城 2016年11月19日发布 随着 Node 7 的发布,越来越多的人开始研究据说是 ...
- Java static{}语句块详解
[转自] http://blog.csdn.net/lubiaopan/article/details/4802430 static{}(即static块),会在类被加载的时候执行且仅会被执行一次,一 ...
- D15 模块
模块