HTML中点击图片不同区域触发不同事件 图片定位

HTML图片映射定位

在一张图片上,点击不同部分区域触发不同事件。

其实就是根据一张已知像素大小的图片,以其左上角作为远点坐标,建立一个右下方向为正轴的二维坐标系。然后建立矩形,圆形等区域并绑定href属性或者其他js事件即可。

具体代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
	
		<!-- usemap 将图像定义为客户器端图像映射 -->
		<img src="img/planets.gif" width="145" height="126" alt="planets" usemap="#plantmap"/>
		
		<!-- map 客户端图像映射器。通过img标签的usemap与map的name绑定 -->
		<map name="plantmap">
			<!-- area 定义图像映射中的区域 -->
			<area shape="rect" coords="0,0,82,126" alt="Sun" href="http://www.baidu.com" target="_blank"/>
			<area shape="circle" coords="90,58,3" alt="Mercury" href="http://www.163.com" target="_parent"/>
			<area shape="circle" coords="124,58,3" alt="Venus" href="http://www.qq.com" target="_top"/>
		</map>
	</body>
</html>

部分代码讲解:
矩形两点定坐标,圆形一点定坐标,起始坐标为(0,0),也就是图片左上角

1、矩形:(左上角顶点坐标为(x1,y1),右下角顶点坐标为(x2,y2))

<area shape="rect" coords="x1,y1,x2,y2" href=url>

2、圆形:(圆心坐标为(X1,y1),半径为r)

<area shape="circle" coords="x1,y1,r" href=url>

3、多边形:(各顶点坐标依次为(x1,y1)、(x2,y2)、(x3,y3) …)

<area shape="poly" coords="x1,y1,x2,y2 ......" href=url>

效果图:
在这里插入图片描述

  • 16
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在 JavaScript 实现点击图片放大可以通过以下步骤进行: 1. HTML 结构:在 HTML ,你需要有一个包含图片的容器元素(例如 div)和一个用于显示放大图片的元素(例如 img 或 div)。给图片添加一个点击事件监听器,以便在点击触发放大效果。 ```html <div id="imageContainer"> <img src="小图片.jpg" alt="图片" id="smallImage"> </div> <div id="zoomedImageContainer"> <img src="大图片.jpg" alt="放大图片" id="zoomedImage"> </div> ``` 2. CSS 样式:使用 CSS 来设置图片容器和放大图片的样式,并将放大图片隐藏起来。 ```css #imageContainer { position: relative; } #zoomedImageContainer { position: absolute; top: 0; left: 0; display: none; } #zoomedImageContainer img { width: 100%; height: auto; } ``` 3. JavaScript 事件处理:使用 JavaScript 来处理点击事件,当点击图片时,显示放大图片,并根据鼠标位置进行定位。 ```javascript // 获取元素 const smallImage = document.getElementById("smallImage"); const zoomedImageContainer = document.getElementById("zoomedImageContainer"); // 添加点击事件监听器 smallImage.addEventListener("click", function() { // 显示放大图片 zoomedImageContainer.style.display = "block"; // 设置放大图片的位置 const smallImageRect = smallImage.getBoundingClientRect(); zoomedImageContainer.style.top = smallImageRect.top + "px"; zoomedImageContainer.style.left = smallImageRect.right + "px"; }); // 点击放大图片外的区域,隐藏放大图片 document.addEventListener("click", function(event) { if (!zoomedImageContainer.contains(event.target) && event.target !== smallImage) { zoomedImageContainer.style.display = "none"; } }); ``` 这样,当用户点击图片时,放大图片会显示在其旁边,再次点击放大图片外的区域,放大图片会隐藏起来。你可以根据实际需求对样式和代码进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值