通过INPUT和IMG实现一个弹出选择窗口的功能。效果如上图所示。objEdit是一个INPUT控件。
popIcon 是控件中的图片;
之前的代码,
//弹出窗体按钮
function CreatePopIcon(objEdit)
{
if (objEdit == null) return;
var popIcon=document.createElement("<IMG alt=\"\" src=\"" + _popImage + "\" style=\"Z-INDEX: 999; POSITION: absolute; display:none;\" fi_attrib=\"fi_popIcon\" border=0"+
" onclick=\" return _popIcon_onclick();\" oncontextmenu=\"_popIcon_menu(); return false;\">");
objEdit.parentNode.appendChild(popIcon);
popIcon.setAttribute("editor", objEdit);
if (objEdit.fi_arrow=="false")
{
_popIcon=popIcon;
}
else
{
popIcon.style.display='';
}
}
上面的代码在IE7和8或者IE10兼容模式下,没有问题,但在其他浏览器下显示就会出错。所以做了调整。
//弹出窗体按钮
function CreatePopIcon(objEdit)
{
if (objEdit == null) return;
//获取objEdit坐标
var w = objEdit.offsetWidth - 20;
var h = 5-1*objEdit.offsetHeight;
var popIcon = document.createElement("IMG");
popIcon.setAttribute("src", _popImage);
popIcon.src= _popImage;
popIcon.editor = objEdit;
//通过坐标,定义popIcon位置
popIcon.style.cssText = "z-index: 999; position: relative; display:none;left:" + w + ";top:" + h + ";";
popIcon.setAttribute("fi_attrib", "fi_popIcon");
popIcon.setAttribute("border", "0");
popIcon.setAttribute("onclick", "return _popIcon_onclick();");
popIcon.setAttribute("oncontextmenu", "_popIcon_menu(); return false;");
objEdit.parentNode.appendChild(popIcon);
if (objEdit.fi_arrow=="false")
{
_popIcon=popIcon;
}
else
{
popIcon.style.display='';
}
}
但问题出现了,popIcon的位置无法定位。跳来跳去。请大家帮忙看下,如何解决定位问题,谢谢。