在图片上直接画出带超级链接热区元素map和area相信大家并不陌生,Dreamweaver等网页制作软件都有直接在图片上绘制带超级链接的热区工具,但是直接绘制的热区是不能随着图片自适应放大和缩小的,现在很多网页对浏览器分辨率兼容性要求很高,多数都是用的百分比来定义图片的尺寸,希望图片能随着分辨率的不同,显示设备的不同,自适应的显示最佳效果,这种情况下如何定义图片热区的尺寸可以随着图片一起变化呢?
这是我今天遇到的问题,问了百度个把小时也没有找到答案,忽悠人的错误答案也不少。热区的范围和坐标主要是由area元素的coords属性来决定的,例如下面这行代码
<area shape="rect" coords="338,308,609,589" >
这是一个矩形热区的范围和坐标,你可以看到有四个数字,这四个数字代表的是什么意思呢,前两个数字是矩形热区左上角的点相对于图片总长宽的横坐标和纵坐标,后面两个数字是矩形热区右下角的点相对于图片总长宽的横坐标和纵坐标。网上有的说,如果图片是用百分比来定义的话,这四个数字也用百分比定义应该就可以吧,很遗憾不行,这地方貌似只能是纯整数的数值方能起效果,加个“%”符号都不起任何作用了。想不通百度贴吧里居然还有不少答案是说用百分比数值来定义。什么都问百度也不一定都是对的,如果这篇文章是被百度搜出来的,那你一定要耐心的看完。
我们如何定义个热区让它随图片的大小来*缩放呢?不急,只要功夫深,铁杵磨成绣花针,方法总是有的,借助js可以重新定义coords的属性值,让其随着图片的大小来生成新的数值。怎么做?高手应该想到办法了,我这里就只介绍下jquery方法吧。假如我有一张id=pic的图片,宽度是1920,高度是1080,代码如下
<img id="pic" src="pic.jpg" alt="" usemap="#Map" width="1920" height="1080" />
那么绘制一个矩形热区,是可以随着图片大小*缩放的呢,代码参考下面
var picw = $("#pic").width();
var pich = $("#pic").height();
var x1 = parseInt(picw*0.1820);
var y1 = parseInt(pich*0.2955);
var x2 = parseInt(picw*0.3280);
var y2 = parseInt(pich*0.5645);
$(".box").attr("coords",'"'+x1+','+y1+','+x2+','+y2+'"')
你一定很奇怪,上面这段代码各个数值都要乘以一个小数是怎么得出来,首先你还是要在原始大小的图片上绘制一个你所需要的矩形范围和坐标,例如下面这行代码
<area shape="rect" coords="338,308,609,589" href="/" class="box" target="_blank" onfocus= "this.blur() " >
然后用所得到的coords属性值对应的去除原始图片的长和宽就获得了当前图片热区范围和位置与原始图片的比例,然后每次都用js获取图片的宽和高来乘以这个比例值就总是可以得到热区相对于图片的真实大小和位置,不管图片怎么变化,热区也会随之改变。建议函数写在onResize的方法里,这样在浏览器人为缩放的时候,图片热区也会随图片变化*变化。
[jquery] 图片热区随图片大小*缩放的更多相关文章
-
Discuz!图片查看插件(支持鼠标缩放、实际大小、旋转、下载)
Discuz!图片查看插件(支持鼠标缩放.实际大小.旋转.下载) 图片查看是网站中的常用功能,用于展示详细的图片.在discuz图片插件的基础上进行了改造,因此这篇文章主要从以下几个方面来讨论图片查看 ...
-
jquery实现上传图片及图片大小验证、图片预览效果代码
jquery实现上传图片及图片大小验证.图片预览效果代码 jquery实现上传图片及图片大小验证.图片预览效果代码 上传图片验证 */ function submit_upload_picture() ...
-
jquery 实现点击图片居住放大缩小
该功能是基于jquery实现的,所以 第一步则是引入jquery jquery下载地址:https://jquery.com/download/ 或者使用此时调试的版本(3版本) /*! jQuery ...
-
jQuery功能强大的图片查看器插件
简要教程 viewer是一款功能强大的图片查看器jQuery插件.它可以实现ACDsee等看图软件的部分功能.它可以对图片进行移动,缩放,旋转,翻转,可以前后浏览一组图片.该图片查看器还支持移动设备, ...
-
PHP图片裁剪_图片缩放_PHP生成缩略图
在制作网页过程中,为了排版整齐美观,对网页中的图片处理成固定大小尺寸的图片,或是要截去图片边角中含有水印的图片,对于图片量多,每天更新大量图,靠人工PS处理是不现实的,那么有没有自动处理图片的程序了! ...
-
java常用开发工具类之 图片水印,文字水印,缩放,补白工具类
import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.Graphic ...
-
(转)jQuery轻量级响应式图片轮播插件ResponsiveSlides.js(仅1kb)也可以做纯文本轮播
ResponsiveSlides.js是一个展示同一容器内图片的轻量级响应式jQuery幻灯片插件(tiny responsive slideshow jQuery plugin).它支持包括IE6在 ...
-
NPOI 图片在单元格等比缩放且居中显示
NPOI导出的图片默认是在单元格左上方,这使得图片在单元格显示得很难看.居中,且等比缩放,才是图片在单元格上的完美展示. /// <summary> /// 图片在单元格等比缩放居中显示 ...
-
java多图片上传--前端实现预览--图片压缩 、图片缩放,区域裁剪,水印,旋转,保持比例。
java多图片上传--前端实现预览 前端代码: https://pan.baidu.com/s/1cqKbmjBSXOhFX4HR1XGkyQ 解压后: java后台: <!--文件上传--&g ...
随机推荐
-
Bootstrap排版
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta na ...
-
PHP在Windows下安装配置第一步
第一步就是下载和安装PHP解释器了: 1.下载Windows版本号的PHP解释器,下载地址:官方下载 我下载的是 VC11 x64 Thread Safe 这个以下的zip包 2.下载完毕后,解压到 ...
-
Linux04--文本编辑器vim
1.Linux系统下常用的文本编辑器介绍 • 命令行方式 vi/vim: 类UNIX操作系统中常用的内置编辑器,习惯操作后功能强大. pico或nano:一种风格很像Micros ...
-
Input file 文本框美化
HTML原生的input file 上传按钮有多(无)不(力)漂(吐)亮(槽)我就不多说了.大家几乎在项目中都会有遇到图片.等文件需要上传的地方,好看的文件上传按钮会使人身心愉悦(我瞎说的).好了不多 ...
-
eclipse环境下日志打印输出
1.先将jdk配置一下 选Preferences---- 找到自己的jdk所在的位置 2.配置Tomcat window-----preferences------- 找到自己的tomcat所在位置 ...
-
SpriteBuilder中物理对象能否被缩放
我前面早些时候提到物理形状不能被缩放. 现在我却说可以缩放它们,这是为啥呢? 好吧,拥有物理物体节点的缩放属性真心不能被动画化或改变在运行的时候; 但是你可以在SpriteBuilder中设置启用物理 ...
-
英语口语练习系列-C14-常用片语
句子 1. Some ads are extremely persuasive and we find we buy products we don't really need. 有一些广告非常有说服 ...
-
java框架之SpringBoot(5)-SpringMVC的自动配置
本篇文章内容详细可参考官方文档第 29 节. SpringMVC介绍 SpringBoot 非常适合 Web 应用程序开发.可以使用嵌入式 Tomcat,Jetty,Undertow 或 Netty ...
-
BZOJ3296: [USACO2011 Open] Learning Languages 并查集
Description 农夫约翰的N(2 <= N<=10,000)头奶牛,编号为1.. N,一共会流利地使用M(1<= M <=30,000)种语言,编号从1 .. M., ...
-
Shiro 学习资料
参考链接:http://jinnianshilongnian.iteye.com/blog/2018398