132 lines
2.9 KiB
JavaScript
132 lines
2.9 KiB
JavaScript
|
|
|
|||
|
|
$(
|
|||
|
|
function()
|
|||
|
|
{
|
|||
|
|
initLayout();
|
|||
|
|
getLayout();
|
|||
|
|
$("#btnSaveLoyout").click(
|
|||
|
|
function()
|
|||
|
|
{
|
|||
|
|
upLoad();
|
|||
|
|
}
|
|||
|
|
);
|
|||
|
|
}
|
|||
|
|
);
|
|||
|
|
//初始化布局
|
|||
|
|
function initLayout()
|
|||
|
|
{
|
|||
|
|
//图片的初始位置
|
|||
|
|
var map=$("img[id$='imgShow'");
|
|||
|
|
var imgoff=map.offset();
|
|||
|
|
var initLeft=imgoff.left;
|
|||
|
|
var initTop=imgoff.top;
|
|||
|
|
//所有的调查主题
|
|||
|
|
var box=$(".box");
|
|||
|
|
var i=0;
|
|||
|
|
box.each(
|
|||
|
|
function()
|
|||
|
|
{
|
|||
|
|
var id=$(this).attr("id");
|
|||
|
|
var width=$(this).width();
|
|||
|
|
var tmId=id+"_boxContent";
|
|||
|
|
$(this).wrap("<div id='"+tmId+"' style='width:"+width+"'></div>");
|
|||
|
|
var boxCon=$("#"+tmId);
|
|||
|
|
boxCon.css("position","absolute");
|
|||
|
|
boxCon.css("z-index","100");
|
|||
|
|
boxCon.css("left",initLeft);
|
|||
|
|
initLeft+=boxCon.width()+5;
|
|||
|
|
boxCon.css("top",initTop);
|
|||
|
|
if(initLeft>=map.width())
|
|||
|
|
{
|
|||
|
|
initTop+=boxCon.height()+5;
|
|||
|
|
initLeft=imgoff.left;
|
|||
|
|
}
|
|||
|
|
//设置拖动
|
|||
|
|
boxCon.easydrag();
|
|||
|
|
boxCon.setHandler(id);
|
|||
|
|
}
|
|||
|
|
);
|
|||
|
|
}
|
|||
|
|
//获取记录在服务器端的布局信息
|
|||
|
|
function getLayout()
|
|||
|
|
{
|
|||
|
|
$().SoapAjax("Para","GetPara",{key:"VoteMapLoyout"},setLayout,null,null);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
//设置布局
|
|||
|
|
function setLayout(data)
|
|||
|
|
{
|
|||
|
|
//获取图片的顶点坐标
|
|||
|
|
var map=$("img[id$='imgShow'");
|
|||
|
|
var imgoff=map.offset();
|
|||
|
|
var pTop=map.css("padding-top").replace("px","");
|
|||
|
|
var pLeft=map.css("padding-left").replace("px","");
|
|||
|
|
//分析获取来的坐标信息
|
|||
|
|
var txt=$(data).text();
|
|||
|
|
var array=txt.split("$");
|
|||
|
|
for(s in array)
|
|||
|
|
{
|
|||
|
|
if(array[s]=="")continue;
|
|||
|
|
var info=array[s];
|
|||
|
|
setBox(info,imgoff.left+Number(pLeft),imgoff.top+Number(pTop));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//设置元素的位置
|
|||
|
|
//info:元素的信息,包括id与坐标
|
|||
|
|
//left:地图的左顶点坐标
|
|||
|
|
//top:地图的上顶点坐标
|
|||
|
|
function setBox(info,left,top)
|
|||
|
|
{
|
|||
|
|
//图片的初始位置
|
|||
|
|
var map=$("img[id$='imgShow'");
|
|||
|
|
//图片宽高
|
|||
|
|
var imgWd=map.width();
|
|||
|
|
var imgHg=map.height();
|
|||
|
|
|
|||
|
|
var array=info.split(",");
|
|||
|
|
var box=$("#"+array[0]+"_boxContent");
|
|||
|
|
box.css("top",top+imgHg*Number(array[1])-box.height()/2);
|
|||
|
|
box.css("left",left+imgWd*Number(array[2])-box.width()/2);
|
|||
|
|
//box.css("left",left+Number(array[2]));
|
|||
|
|
}
|
|||
|
|
//上传布局信息
|
|||
|
|
function upLoad()
|
|||
|
|
{
|
|||
|
|
var xml=buildXML();
|
|||
|
|
//xml=encodeURIComponent(xml);
|
|||
|
|
$().SoapAjax("Para","SetPara",{key:"VoteMapLoyout",value:xml},
|
|||
|
|
function()
|
|||
|
|
{
|
|||
|
|
alert("保存成功!");
|
|||
|
|
}
|
|||
|
|
,null,null);
|
|||
|
|
}
|
|||
|
|
//生成配置信息的XML
|
|||
|
|
function buildXML()
|
|||
|
|
{
|
|||
|
|
//图片的初始位置
|
|||
|
|
var map=$("img[id$='imgShow'");
|
|||
|
|
var imgoff=map.offset();
|
|||
|
|
//图片宽高
|
|||
|
|
var imgWd=map.width();
|
|||
|
|
var imgHg=map.height();
|
|||
|
|
//逐个记录位置
|
|||
|
|
var box=$(".box");
|
|||
|
|
//结果
|
|||
|
|
var tmp = "";
|
|||
|
|
box.each(
|
|||
|
|
function()
|
|||
|
|
{
|
|||
|
|
var id=$(this).attr("id");
|
|||
|
|
//当前元素所在绝对坐标
|
|||
|
|
var offset = $(this).parent().offset();
|
|||
|
|
var xPer=(offset.left-imgoff.left+$(this).parent().width()/2)/imgWd;
|
|||
|
|
var yPer=(offset.top-imgoff.top+$(this).parent().height()/2)/imgHg;
|
|||
|
|
//记录
|
|||
|
|
tmp+=id+",";
|
|||
|
|
tmp+=yPer+",";
|
|||
|
|
tmp+=xPer+"$";
|
|||
|
|
}
|
|||
|
|
);
|
|||
|
|
return tmp;
|
|||
|
|
}
|