HTML5,如何给图片中指定的几个地方添加链接?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTML5,如何给图片中指定的几个地方添加链接?相关的知识,希望对你有一定的参考价值。

使用html <map>标签,给图片设置热点(指定的要添加链接的地方)
例子:
<img src="planets.jpg" border="0" usemap="#planetmap" border="0" />
<map name="planetmap" id="planetmap">
<area shape="circle" coords="180,139,14" href ="venus.html" style="cursor: pointer" />
<area shape="circle" coords="129,161,10" href ="mercur.html" />
<area shape="rect" coords="0,0,110,260" href ="sun.html" />
</map>
关于例子的解释:
area 元素永远嵌套在 map 元素内部。area 元素可定义图像映射中的区域。
<img>中的 usemap 属性可引用 <map> 中的 id 或 name 属性(取决于浏览器),所以应同时向 <map> 添加 id 和 name 属性。

x1,y1,x2,y2
如果 shape 属性设置为 "rect",则该值规定矩形左上角和右下角的坐标。
x,y,radius
如果 shape 属性设置为 "circ",则该值规定圆心的坐标和半径。
x1,y1,x2,y2,..,xn,yn
如果 shape 属性设置为 "poly",则该值规定多边形各边的坐标。如果第一个坐标和最后一个坐标不一致,那么为了关闭多边形,浏览器必须添加最后一对坐标。
参考技术A Dreamweaver有热点工具 参考技术B 热区链接,用dreamweaver就行了,不过会的话也可以自己编写代码用<map>标签

图片预加载的几个注意点

1. 应用场景

在制作图片墙,相册这样的单页图片资源比较大的页面时,为了能让用户有流畅的使用体验,需要提前将图片缓存到本地,这就是图片预加载的用途。

2. 原理

提前将图片缓存到本地后,如果图片路径不变,页面在使用图片时,浏览器就可以直接使用缓存了。
具体方法如下:
js有一个Image对象,页面中每有一个技术分享标签,就说明有一个image实例。如果想预加载图片,可以提前定义image对象并指定src。

  • 写法一

    function imgPreload(url){
    var img = new Image();
    img.onload = function(){
        alert(‘img is loaded‘);
    };
    img.onerror = function (){
        alert(‘img loading error!‘);
    };
    img.src = url;
    }
  • 写法二

    function imgPreload(url){
    var img = new Image();
    img.src = url;
    if(img.complete){
        alert(‘img is loaded‘);
    }else {
        img.onload = function (){
            alert(‘img is loaded‘);
        };
        img.onerror = function (){
            alert(‘img loading error!‘);
        };
    }
    }

    下面说一下几个需要注意的地方:

  1. 方法一必须先绑定onload,后指定src。原因是如果先指定src,可能在还没有给img对象绑定监听器时,图片已经加载完了,这样的话,onload的回调函数将不再执行。如果一定要先指定src的话,可以使用方法二,先判断img的complete属性,如果已经加载完,那么comeplete为true,否则为false。
  2. onload是事件,complete是状态。(这里说句题外话:绑定事件的方式更适合那种同一个对象触发多次事件的情况(比如click,keyup),并且不在乎绑定事件前是否已经触发过该事件的场景。但本例中只能联合使用onload和complete实现图片预加载)。
  3. 注意加上onerror事件,因为img不一定能成功加载,如果没有加载成功,可以使用回调函数处理。

补充:预加载gif图有可能多次触发onload事件,在onload事件被触发时,应该清除事件监听,代码如下。

img.onload = function(){
    img.onload = null;
    alert(‘img is onload‘);
}


以上是关于HTML5,如何给图片中指定的几个地方添加链接?的主要内容,如果未能解决你的问题,请参考以下文章

html5 canvas怎么载入图像

用AutoHotkey一键完成Xmind里的几个功能

超链接如何加下划线 css

如何在html中添加的图片上设置超链接

HTML的几个核心概念(复盘大纲~)

ThinkPHP使用Imagick给图片加文字