JS动态在图片上 绘制热区 并 记录坐标! 哪位大神会啊 100

 我来答
匿名用户
2015-12-15
展开全部
根据图片设置希望的热区坐标。代码如下:
js代码 :更多问题到问题求助专区http://bbs.houdunwang.com/
// MAP1名称
var mapName1 = "Map1";
// MAP1ID
var mapId1 = "MapId1";
// 指定DIV名称
var divnId = "mask";
// 图片路径
var imgPath = "";
main = function(type) {
var obj;
switch(type) {
case "aa" :
// 指定图片及热点对象取得
obj = imgMapList[0];
// 创建图片及热点
creatImpAndHot(obj);
break;
}
}

creatImpAndHot = function(hotObj) {
// 创建热点MAP对象
var map = document.createElement_x("Map");
// 设置MAP名称
map.name = mapName1;
// 设置MAPID
map.id = mapId1;
// 热点列表取得
var length = hotObj.map.length;
for (var i = 0; i < length; i++) {
var tempMap = hotObj.map[i];
// 创建热区对象
area = document.createElement_x("area");
// 设置热区类型
area.shape = tempMap.shape;
// 设置热区坐标
area.coords = tempMap.coords;
// 设置热区对应链接
area.href = tempMap.href;
// 设置热区对应事件
area.onclick = tempMap.onclick;
// 设置热区id
area.id = tempMap.id;
// 向MAP中追加热区对象
map.appendChild(area);
}
// 创建图片对象
var img = document.createElement_x("img");
// 图片ID
img.id = hotObj.img.id;
// 设置图片链接
img.src = hotObj.img.imgName;
// 设置图片对应热区MAP
img.useMap="#" + mapName1;
// 设置图片尺寸
img.width = hotObj.img.width;
img.height = hotObj.img.height;
// 边框
img.border = "0";
// 设置图片ID
img.id = hotObj.id;
// 清空指定DIV内容
document.getElementByIdx_x(divnId).innerHTML = '';
// 向DIV区添加MAP对象
document.getElementByIdx_x(divnId).appendChild(map);
// 向DIV区添加图片对象
document.getElementByIdx_x(divnId).appendChild(img);
}
testClick = function() {
alert();
}
creatImgAndMap = function(){
var tempArray = new Array();
var tempObj = new Object();
// 图片ID
tempObj.img = new Object();
tempObj.img.id = "test1";
// 图片名称(只要图片名称,路径由公共变量设置)
tempObj.img.imgName = "113.jpg";
// 设置图片尺寸
tempObj.img.width = "640";
tempObj.img.height = "200";
var tempMap;
tempObj.map = new Array();
// 热点1
tempMap = new Object();
// 热区ID
tempMap.id = "test1_hot1"
// 类型
tempMap.shape = "rect";
// 热区坐标
tempMap.coords = "159,167,238,191";
// 链接
tempMap.href = "#";
// 单击事件
tempMap.onclick = testClick;
// 添加到列表中
tempObj.map[0] = tempMap;
// 热点2
tempMap = new Object();
// 热区ID
tempMap.id = "test1_hot2"
// 类型
tempMap.shape = "rect";
// 热区坐标
tempMap.coords = "147,7,286,33";
// 链接
tempMap.href = "#";
// 单击事件
tempMap.onclick = testClick;
// 添加到列表中
tempObj.map[1] = tempMap;
// 将图片及相应热区信息添加到列表中
tempArray[0] = tempObj;
return tempArray;
};
// 热点映射
var imgMapList = creatImgAndMap();
HTML代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.houdunwang.com/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://houdunwang.com/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript" src="img.js" ></script>
<script type="text/javascript">
function abc(){
main("aa");
}
</script>
</head>

<body>
<div id="mask">
<input type="button" value="set" onClick="abc()">
</div>
</body>
</html>
长城郭靖
2015-12-14 · TA获得超过729个赞
知道小有建树答主
回答量:1090
采纳率:47%
帮助的人:395万
展开全部
我猜是重绘重绘重绘。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
肉播柴璃0r
2015-12-13 · 超过30用户采纳过TA的回答
知道答主
回答量:215
采纳率:0%
帮助的人:88.6万
展开全部
额,绘制在什么地方有要求吗?
更多追问追答
追问
没有
追答
那就随机生成啦。很简单的啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式