博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
动态大小的图片上的超链接
阅读量:6620 次
发布时间:2019-06-25

本文共 971 字,大约阅读时间需要 3 分钟。

近日根据需求需要对一张图片上的某些地方加上超链接,首先想到的就是图片热点,这个大家都知道是根据图片左上角0,0开始定位,但是后来发现热点不随着图片大小改变而改变,这就无法满足需求

然后想了想可能的办法应该有两种

1、动态更改area中的coords,因为我这个图片热点是矩形,所以对应的就是左上角和右下角的坐标,可以根据图片的大小改变而去动态改变coords来满足热点随图片大小改变而改变

2、用浮动div覆盖图片对应图片区域通过响应点击事件来模拟热点操作

后来通过使用2方法发现,其实1和2原理相同,无非就是计算的点的个数不同,其中

方法1需要计算两个相对点相对图片的相对坐标

方法2只要计算一个div左上角点相对图片的相对坐标,因为div的宽高都可以在css中定义成百分比,所以只要左上角一个点

原理:根据图片原图中需要链接的点相对于图片的百分比,去匹配实际图片大小对应的百分比

例子:以方法2为例

假设:原图宽高为  sw,sh,图片所在容器宽高为ww,hh, 原图中元素离图片左边的距离为w,离图片顶部的距离为h,新建一个浮动且绝对定位div元素,宽高根据实际情况设为百分比,

则放大后对应元素的margin-left = ww * (w/sw)

则放大后对应元素的margin-top = hh * (h/sh)

绑定缩放事件

window.onresize = function() {for (var i = 0; i < $(".hot").length; i++) {                      $(".hot").eq(i).css("margin-left",  ww*(w[i]/sw) + "px").css("margin-top", hh*(h[i]/sh)+"px");                  }             }

样式如下:

.hotpot{
height: 7%; background: red; width: 14%; position: absolute; float: left; cursor: pointer;}

 

转载于:https://www.cnblogs.com/hack132/p/6225534.html

你可能感兴趣的文章
android之布局
查看>>
自定义服务器控件(处理不同的浏览器)
查看>>
解决IE6-IE7下li上下间距
查看>>
配置级别greenplum 可用空间计算
查看>>
聚集索引更新后会不会马上重新排序
查看>>
幸运大抽奖
查看>>
消除人声的方法
查看>>
Post请求
查看>>
labview 中activex的初步使用方法
查看>>
Jquery 操作Html 控件 CheckBox、Radio、Select 控件
查看>>
JSP与JavaBeans
查看>>
解决Android中TextView首行缩进的问题
查看>>
oracle 查询哪些表分区
查看>>
SQL Server 2012:SQL Server体系结构——一个查询的生命周期(第1部分)
查看>>
Ubuntu启动sshd服务
查看>>
Java排序算法(三):直接插入排序
查看>>
推断图片格式
查看>>
JVM知识
查看>>
Python 列表 min() 方法
查看>>
C语言中 Float 数据结构的存储计算
查看>>