HTML map标签与area标签 图片热区 使用说明

2023-10-15 00:40

本文主要是介绍HTML map标签与area标签 图片热区 使用说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

为什么使用?

有时提供了一张图,需要在图片具体位置做点击操作,这时候用热区图是最好的选择

是与img标签绑定使用的,常被用来赋予给客户端图像某处区域特殊的含义,点击该区域可跳转到新的文档。

热区图是什么?

其实就是一张图片上面加了自定义的点击区域,可以自由控制

因为map标签是与img标签绑定使用的,

所以我们需要给map标签添加ID和name属性

让img标签中的usemap属性引用map标签中的id或者name属性(由于浏览器的不同,usemap属性接收二者之一的值,所以通常name和id属性二者都写,值相同),并配合area标签进行使用。

<!doctype html>
<html><head></head><body><img src="http://s2.sinaimg.cn/middle/69906822ga1e24ba6e971&690" width="450" height="395" alt="地图" usemap="#province"/><map name="province" id="province"><area shape="rect" coords="80,112,110,125"  alt="新疆" href="https://baike.baidu.com/item/%E6%96%B0%E7%96%86/132263?fr=aladdin"><area shape="rect" coords="77,209,110,229"  alt="西藏" href="https://baike.baidu.com/item/%E8%A5%BF%E8%97%8F/130045"><area shape="rect" coords="150,176,185,192"  alt="青海" href="https://baike.baidu.com/item/%E9%9D%92%E6%B5%B7/31638"><area shape="rect" coords="197,236,235,261"  alt="四川" href="https://baike.baidu.com/item/%E5%9B%9B%E5%B7%9D/212569"><area shape="rect" coords="170,300,211,325"  alt="云南" href="https://baike.baidu.com/item/%E4%BA%91%E5%8D%97/206207"><area shape="circle" coords="227,200,8"  alt="甘肃" href="https://baike.baidu.com/item/%E7%94%98%E8%82%83"><area shape="circle" coords="240,177,5"  alt="宁夏" href="https://baike.baidu.com/item/%E7%94%98%E8%82%83"><area shape="circle" coords="285,133,8"  alt="内蒙古" href="https://baike.baidu.com/item/%E7%94%98%E8%82%83"></map></body>
</html>

1、alt属性

定义:规定区域的替代文本。

说明:如果写href属性,则alt属性是必写的

2、cooreds属性

定义:定义相关区域的坐标

说明:和shape属性搭配使用

  (1)当shape属性为rect时,代表相关区域为矩形,则cooreds属性值为(x1,y1,x2,y2),其中x1,y1为左上角的坐标,x2,y2为右下角的坐标;

  (2)当shape属性为circle时,代表相关区域为圆形,则cooreds属性值为(x,y,radius),其中x,y为圆形的中心坐标,radius为圆形的半径;

  (3)当shape属性为poly时,代表相关区域为多边形,则cooreds属性值为(x1,y1,x2,y2,x3,y3......xn,yn),规定了多边形各个顶点的坐标,由于浏览器会自动闭合多边形,所以尾部坐标不必与第一个坐标相等。

3、href属性

定义:定义了相关区域所连目标

说明:href属性一般有三种值

  (1)绝对路径:通常用来指向其他的网站如(href="https://www.baidu.com")

  (2)相对路径:通常用来指向自身网站内的某个文件如(href="//favicon.ico")

  (3)锚链接:通常用来指向页面中的锚如(href="#header")

4、shape属性

定义:定义了相关区域的形状

说明:(1)默认值(default):规定全部区域

           (2)rect:规定相关区域为矩形

           (3)circle:规定相关区域为圆形

           (4)poly:规定先关区域为多边形

5、target属性

定义:定义了在何处打开目标链接

说明:(1)_blank:在新窗口打开被链接的文档

           (2)_self:默认,在相同框架中打开被链接的文档

           (3)_parent:在父框架集中打开被链接的文档

           (4)_top:在整个窗口中打开被链接文档

   (5)framename:在指定框架中打开被链接文档

说明:area标签有些时候也可以当做a标签的替代品,因为a标签并不能直接嵌套a标签,在某些情况下,我们又不得不用,那么我们可以把a标签替换为area标签,使布局更加简单。

缺点:

热区加不了css样式,不方便调整

解决办法:

参考1:area标签设置样式Area标签高亮Map area标签的基础知识Map area的具体用法Area标签设置样式的问题使用jquery.maphilight.js库改变area背景效果图片展示基础使用方法附上github的实例,讲的比我清楚结束Map area标签的基础知识公司要求写一个demo案例,需要用到图片热区,此时便想到了html中的map+area功能,该功能可以实现图片热区的添加。具体的Map area百科Map area的具体用法https://www.cnblogs.com/mq0036/p/33373https://blog.csdn.net/a57321563/article/details/106406104

参考2:关于MAP标签中AREA 不能加样式所做的备选方案。(超简单)_qq_34494077的博客-CSDN博客_area 样式关于MAP标签中AREA 不能加样式所做的备选方案。(超简单)图层本人花费了2天时间 一直寻找解决AREA标签样式或替代方案。从GITHUB到各个大小博客搜索,也尝试过MAPLIHIGHT这个库(本人用VUE一直引用报错,放弃)。各种其他人的偏方,曲线加框(复杂)这里就不介绍了先说下灵感 由于MAP标签是针对IMG去做的定位 事件等等很方便 可惜的是AREA不允许加样式 导致加了MAP之后完全看不出这个区域在哪里?用户体验很差! 然后想到既然不能再IMG原生上找问题干脆做一个假的来和IMG联动https://blog.csdn.net/qq_34494077/article/details/116268195

进阶: 热区自适应图片变化

图片大小随页面变化,但是MAP中每个area的坐标并不能通过css直接实现自适应。现在就介绍通过原生js来实现:MAP中每个area的坐标也随页面等比例的变化效果。

<style>
img{display:block;max-width:1920;width: 100%;border: 0;
}  
</style>
<img src="src/1.jpg" usemap="#planetmap"/>
<map name="planetmap" id="planetmap"><area shape="rect" coords="0,0,110,200" href="#"/><area shape="rect" coords="50,50,200,200" href="#"/>
</map>
<script>
var initwidth=null,//初始图片宽度area=document.getElementsByTagName('area'),initarea=null;//初始数据保存function init(){//初始化initwidth=1920;initarea=new Array(area.length-1);for(var i=0;i<area.length;i++){initarea[i]=area[i].getAttribute("coords");}
}function setCoords(){//根据分辨率自适应热区坐标var width=document.body.offsetWidth,percent=width/initwidth;for(var i=0;i<area.length;i++){var coords=initarea[i],arr=coords.split(",");for(var j=0;j<arr.length;j++){arr[j] *= percent;   }area[i].setAttribute("coords",arr.join(","));}
}
//使用
init();
window.onresize = function () { setCoords();
} 
</script>

参考文章: html中map标签和area标签的应用 - 蓝色眼泪1 - 博客园

html中map area 热区自适应的原生js实现方案 - 前端一点红 - 博客园

这篇关于HTML map标签与area标签 图片热区 使用说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/214235

相关文章

HTML5 中的<button>标签用法和特征

《HTML5中的<button>标签用法和特征》在HTML5中,button标签用于定义一个可点击的按钮,它是创建交互式网页的重要元素之一,本文将深入解析HTML5中的button标签,详细介绍其属... 目录引言<button> 标签的基本用法<button> 标签的属性typevaluedisabled

HTML5实现的移动端购物车自动结算功能示例代码

《HTML5实现的移动端购物车自动结算功能示例代码》本文介绍HTML5实现移动端购物车自动结算,通过WebStorage、事件监听、DOM操作等技术,确保实时更新与数据同步,优化性能及无障碍性,提升用... 目录1. 移动端购物车自动结算概述2. 数据存储与状态保存机制2.1 浏览器端的数据存储方式2.1.

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

SpringBoot中使用Flux实现流式返回的方法小结

《SpringBoot中使用Flux实现流式返回的方法小结》文章介绍流式返回(StreamingResponse)在SpringBoot中通过Flux实现,优势包括提升用户体验、降低内存消耗、支持长连... 目录背景流式返回的核心概念与优势1. 提升用户体验2. 降低内存消耗3. 支持长连接与实时通信在Sp

Python如何去除图片干扰代码示例

《Python如何去除图片干扰代码示例》图片降噪是一个广泛应用于图像处理的技术,可以提高图像质量和相关应用的效果,:本文主要介绍Python如何去除图片干扰的相关资料,文中通过代码介绍的非常详细,... 目录一、噪声去除1. 高斯噪声(像素值正态分布扰动)2. 椒盐噪声(随机黑白像素点)3. 复杂噪声(如伪

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

python使用库爬取m3u8文件的示例

《python使用库爬取m3u8文件的示例》本文主要介绍了python使用库爬取m3u8文件的示例,可以使用requests、m3u8、ffmpeg等库,实现获取、解析、下载视频片段并合并等步骤,具有... 目录一、准备工作二、获取m3u8文件内容三、解析m3u8文件四、下载视频片段五、合并视频片段六、错误

CSS place-items: center解析与用法详解

《CSSplace-items:center解析与用法详解》place-items:center;是一个强大的CSS简写属性,用于同时控制网格(Grid)和弹性盒(Flexbox)... place-items: center; 是一个强大的 css 简写属性,用于同时控制 网格(Grid) 和 弹性盒(F

CSS实现元素撑满剩余空间的五种方法

《CSS实现元素撑满剩余空间的五种方法》在日常开发中,我们经常需要让某个元素占据容器的剩余空间,本文将介绍5种不同的方法来实现这个需求,并分析各种方法的优缺点,感兴趣的朋友一起看看吧... css实现元素撑满剩余空间的5种方法 在日常开发中,我们经常需要让某个元素占据容器的剩余空间。这是一个常见的布局需求

CSS Anchor Positioning重新定义锚点定位的时代来临(最新推荐)

《CSSAnchorPositioning重新定义锚点定位的时代来临(最新推荐)》CSSAnchorPositioning是一项仍在草案中的新特性,由Chrome125开始提供原生支持需... 目录 css Anchor Positioning:重新定义「锚定定位」的时代来了! 什么是 Anchor Pos