`

图片热点area,map的用法(H5)

    博客分类:
  • HTML
阅读更多

最近在工作中遇到html标签<map>的使用,记录下(图像地图 / 图像热点 )<map>的使用过程:

 

标准定义:

定义一个客户端图像映射。图像映射(image-map)指带有可点击区域的一幅图像。

通俗理解:

<map>是在图片上面创建热点的标签,所谓图片热点就是给你一张图片然后你可以设置点击图片不同的位置进入不同的链接!

 

兼容:所有主流浏览器都支持 <map> 标签与<area>标签

 

场景:

①比如一张图片的静态页!如果你不会切图做静态页,那么就可以用一张效果图来实现!

②<area>标记主要用于图像地图,通过该标记可以在图像地图中设定作用区域(又称为热点),这样当用户的鼠标移到指定的作用区域点击时,会自动链接到预先设定好的页面

③在一些购物网站,我们总能看到一张大图,上面铺满充满诱惑的礼品,当我们轻轻地用鼠标单击一下,就跳转到这个宝贝的页面。以后再也不用去找美工切图,并且也不用为兼容这种浏览器而发愁了。

 

一、area标签实现图片局部点击事件

原理:在图片上设置链接的area标签,产生图片的局部点击事件效果~

参考例子:

 

<map name="planetmap" id="planetmap">
    <area
            shape="circle"
            coords="180,139,14"
            href ="http://www.w3school.com.cn/example/html/venus.html"
            target ="_blank"
            alt="Venus" />

    <area
            shape="circle"
            coords="129,161,10"
            href ="http://www.w3school.com.cn/example/html/mercur.html"
            target ="_blank"
            alt="Mercury" />

    <area
            shape="circle"
            coords="-200,200,310"
            href ="http://www.w3school.com.cn/example/html/sun.html"
            target ="_blank"
            alt="Sun" />

</map>
<p>
    <b>注释:</b>img 元素中的 "usemap" 属性引用 map 元素中的 "id" 或 "name" 属性(根据浏览器),
    所以我们同时向 map 元素添加了 "id" 和 "name" 属性。
</p>

 

 

参数说明:

(1)shape:可点击区域形状

  ①rect:矩形

  ②circle:圆形

  ③poligon:多边形

(2)coords:可点击区域坐标

  ①当shape是矩形时,此值是4个坐标值,前两个为坐上坐标(x,y),后两个为右下坐标

  ②当shape是圆形时,此值是3个坐标值,前两个为圆形的坐标,最后一个为半径

  ③当shape是多边形时,coords="x1, y1,x2,y2 ......",各顶点坐标依次为(X1,y1)、(X2,y2)、(x3,y3) ......。

(3)usemap:使用哪个map的区域点击事件

 

【注释】:area 元素永远嵌套在 map 元素内部。area 元素可定义图像映射中的区域。

【注释】:<img>中的 usemap 属性可引用 <map> 中的 id 或 name 属性(取决于浏览器),所以我们应同时向 <map> 添加 id 和 name 属性

【注释】:如果某个 area 标签中的坐标和其他区域发生了重叠,会优先采用最先出现的 area 标签。浏览器会忽略超过图像边界范围之外的坐标。

 

 

【实际应用】HTML 图像地图

(1)什么是图像地图?

       把一幅图像分成多个区域,每个区域指向不同的URL地址。例如,将一幅中国地图的图像按照省市划分为若干个区域,这些区域就被称为热点,单击热点区域,就可以连接到与相应的省市有关的页面,这就是图像地图。

(2)怎么制作?

       首先必须定义出图像上的各个热点区域的形状,位置坐标,及其指向的URL地址等信息,这个过程叫图像热点映射。图像热点映射需要使用<map name=mapname></map>标签对进行说明,其中的name属性为该图像热点映射指定了一个名称。

       图像热点映射中的各个区域用<area>标签说明,<area>标签的格式为:<area shape="形状" coords="坐标" href="URL">,href部分也可以用nohref替换,表示在该区域单击鼠标无效。<area>标签还可以有一个target属性,用来指明浏览器在哪个窗口或者帧中显示href属性所指向的网页资源。

       定义好了图像热点之后,接着就要在<img> 图像标签中增加一个名为usemap的属性设置,usemap属性指定该图像被用作图像地图,其设置值为所使用的图像热点映射名称,格式为:在<map>标签中的name属性设置值前多加一个"#"字符。例如,<img src="china.jpg" usemap="#mymap">

 

具体来说:

①将想要显示的图片,使用HTML标签将其显示在页面中,代码很简单,不做过多解释。但是这里有一个关键的并不常用的属性,那就是usemap,它指定了你要选择的地图,也就是使用哪种地图方式来展示里面的链接。示例代码如下:
<img src="planets.jpg" border="0" usemap="#imgMap" alt="Planets" />
 ②接下来,定义Map地图,并将Map分块,用以区分不同的内容区域。
     Map地图由<map>标签和<area>标签组成。<map>标签的定义非常简单,只需声明id和name即可,因为不同浏览器识别的标签不一样,所以id和name二者缺一不可。<area>标签因为不常用,下面的图表展示了各个属性所代表的的确切含义。

 

属性
描述
coords
坐标值
定义可点击区域(对鼠标敏感的区域)的坐标。
href
URL
定义此区域的目标 URL。
shape
default
rect
circ
poly
定义区域的形状。
target
_blank
_parent
_self
_top
规定在何处打开 href 属性指定的目标 URL。
 
到此为止,我们就可以轻松创建自己的图片地图了。然而,对于如何图片中某个元素的坐标对很多小伙伴来说,仍然是一个难题,因为普通的看图软件根本无法查看每个元素的坐标位置。
 
【确定coords坐标值方法】:
方法一:在Dreamweaver中在图片上添加热区自动生成坐标,这是最快的方法
方法二:把需要添加局部连接的图片放在Photoshop中打开标尺然后放大之后可以看到坐标像素
 
 
 
二、图片自适应浏览器宽度问题
由于页面就是一张图片,所以会出现屏幕宽度不同(浏览器宽度不同)造成的显示不全或横向滚动条问题,比如1920px宽的图显示在1366px宽的浏览器上,就会出现横向滚动条。
 
尝试了几种方案:【正确方法在后面文章http://570109268.iteye.com/admin/blogs/2406185做了总结
 
1、将效果图改成div的背景图,对背景图居中显示
<div style="background:url(/images/abc/1.jpg) top center no-repeat;">
 虽然达到了适应浏览器宽度的效果,但area标签不支持图片是背景图,所以点击事件失效!
 
2、将图片按浏览器当前宽度指定宽度大小
<script type="text/javascript">
   window.onload=function(){
      if (window.innerWidth){
         winWidth = window.innerWidth;
      }else if ((document.body) && (document.body.clientWidth)){
        winWidth = document.body.clientWidth;
       }
      if (document.documentElement && 
           document.documentElement.clientWidth){
            winWidth = document.documentElement.clientWidth; 
       } 
        $("#img1").css("width",winWidth);
    } 
</script>
 这种情况虽然也能达到效果,但area的坐标值位置都发生改变,点击区域不对了!

 

3、将图片外层div左侧距离固定,求浏览器宽度winWidth同2

var left = (winWidth-1920)/2;//假设图片宽度是1920
$("#div1").css("left",left);
$("#div1").css("position",absolute);

 将左侧多出部分切掉,同时,去掉右侧多出部分(隐藏横向滚动条)

html{
overflow-x:hidden;
  overflow-y:auto;
}

  此方法缺点,如果浏览器不是全屏显示,右侧部分的图片会被切掉,而且没有滚动条,这就是不会切图的程序员写静态页的偷懒方法。所以想省事还是要最好精通PS

 

.

分享到:
评论

相关推荐

    html中map热点area的使用全部代码和效果,兼容所有浏览器

    本篇文章将深入讲解如何使用`&lt;map&gt;`和`&lt;area&gt;`来创建兼容所有浏览器的图像热点。 首先,`&lt;map&gt;`元素定义了一个图像映射,它不直接显示在页面上,但与`&lt;img&gt;`标签配合使用,为图像提供可交互的区域。例如: ```html...

    html中map热点area的使用

    html中map热点area的使用,获取图片上的热点

    map area图片热点效果增强版

    "map area图片热点效果增强版" 提供了一种优化的解决方案,旨在提升用户体验,去除不必要的边框,以及在鼠标悬停时提供更加美观的视觉反馈。 首先,我们要了解HTML `&lt;map&gt;` 和 `&lt;area&gt;` 标签的作用。`&lt;map&gt;` 标签...

    vue实现在图片中画矩形框,并得到对角坐标,设置map中area的样式.zip

    - 图片热区(Image Map)是一种将图像映射到超链接的方法,它允许用户点击图像的特定区域来触发不同的动作。在HTML中,我们使用`&lt;img&gt;`标签的`usemap`属性引用一个`&lt;map&gt;`元素,`&lt;map&gt;`元素定义了图像的热区。 - `...

    鼠标移动到地图的热点区域时突出显示热点区域的源码

    最后,`map.png`是一个静态地图图片,开发者可能需要将其分割成多个可独立操作的部分,以便于用JavaScript控制各个热点区域。这通常通过CSS精灵(CSS Sprites)技术完成,将多个小图拼接成一张大图,然后通过修改`...

    Jquery ImageMapste Map area

    - 使用jQuery选择器选中图片,然后调用`imageMapster()`方法初始化插件。 3. **配置选项** - `fillColor`: 设置区域填充颜色。 - `strokeColor`: 设置区域边框颜色。 - `strokeWidth`: 设置区域边框宽度。 - `...

    QScrollArea加载图片

    首先,我们需要理解QScrollArea的基本用法。QScrollArea是一个容器类,它可以包含其他QWidget子类的对象,如QLabel、QGraphicsView等。在这个例子中,我们将使用QLabel来显示图片,因为QLabel支持显示各种图像格式。...

    jquery开发的地图热点特效-map标签

    【jQuery开发的地图热点特效——Map标签详解】 在Web开发中,地图热点特效是一种常见的交互功能,它可以增强用户体验,使用户能够点击地图上的特定区域获取更多信息或执行特定操作。本篇文章将深入探讨如何利用...

    Jquery 图片 热点区域 选择

    本文将详细介绍如何使用jQuery实现图片热点区域选择,并通过实例——中国地图热点区域选择,来阐述具体步骤。 **一、jQuery基础知识** 首先,我们需要理解jQuery的基本用法。jQuery简化了DOM操作、事件处理和动画...

    jquery图片热点定位标注特效

    在网页设计和开发中,图片热点定位和标注是一种常见的交互技术,用于在大图像上标记特定区域并提供额外的信息或功能。"jquery图片热点定位标注特效"是一个利用jQuery和CSS3实现的高效解决方案,旨在帮助用户在大图上...

    areamap.zip_areamap_三维云图_电机 云图_电机效率三维_电机效率云图

    首先,“areamap”在数学和工程中通常指区域映射,它是一种将二维平面划分为多个区域,并对每个区域赋予特定数值的方法。在电机效率云图中,areamap可能指的是电机运行的不同工况区间及其对应的效率值。 “三维云图...

    图像的影像地图超链接(热点区域),map标签浅谈

    本文将详细介绍如何使用`&lt;img&gt;`、`&lt;map&gt;`以及`&lt;area&gt;`标签创建图像的热点区域,并探讨其实际应用。 #### 二、基础知识 ##### 2.1 `&lt;img&gt;`标签 `&lt;img&gt;`标签用于在HTML文档中嵌入图像。当结合`usemap`属性使用时,它...

    iPhoneX安全区域与H5引发的问题(Safe Area)

    iPhoneX安全区域引发的问题(Safe Area) 瞧一瞧 LeetCode题解:Gitbook版本传送门 前端笔记:Gitbook传送门 目录 什么是安全区域? 预留出Home Indicator指示条 简单总结 一、什么是安全区域? 最近正在开发小程序...

    如何使用DW工具给图片添加热点

    本文将详细介绍如何使用Dreamweaver(简称DW)这一强大的网页编辑工具来实现图片热点功能。 #### 一、准备工作 首先,你需要准备一张需要添加热点的图片。这张图片最好是专门为添加热点而设计的,以便于清晰地划分...

    图片热点技术Demo

    在IT行业中,图片热点技术是一种将交互性引入静态图片的方法,允许用户与图片上的特定区域进行互动。这种技术常用于地图应用、产品展示、广告设计等领域,为用户提供更丰富的信息和体验。本“图片热点技术Demo”正是...

    为图片根据坐标自动创建热区并点击变颜色

    - `&lt;map&gt;`元素定义了一个图像映射,映射中包含一个或多个由`&lt;area&gt;`元素定义的区域。 - `name`属性是必需的,用于标识图像映射,以便在`&lt;img&gt;`标签中引用它。 - 示例:`&lt;map name="myMap"&gt;...&lt;/map&gt;` 2. **...

    map指定区域颜色及划过高亮.zip

    "map-highlight"和"map-area"这两个标签暗示了我们将讨论的是地图组件中的特定功能,即地图区域的着色和高亮显示。 首先,我们需要理解`map-area`的概念。在HTML中,`&lt;map&gt;`元素与`&lt;area&gt;`元素结合使用,可以创建...

    30m resolution global annual burned area map of 2015.pdf

    本文介绍了一项重要的遥感技术成果——利用30米分辨率的Landsat卫星图像结合Google Earth Engine(GEE)的强大计算能力,生成了一个全球年度过火面积地图(Global Annual Burned Area Map, GABAM)。该地图针对2015...

    JS实现图片上的热点功能.rar

    在这个“JS实现图片上的热点功能.rar”压缩包中,包含的代码示例正是关于如何使用JavaScript来实现这种功能。这个功能在地图应用、产品展示或任何需要在图片上添加交互元素的场景中非常有用。 首先,我们需要理解...

    AreaMap

    在"AreaMap-main"这个压缩包文件中,很可能是包含了这个API的主文件或者其他相关资源,如示例代码、样式表、图片或文档等。开发者可以通过解压并参考这些内容,学习如何在实际项目中应用和定制AreaMap API,以满足...

Global site tag (gtag.js) - Google Analytics