用DIV完美模拟createPopup 弹出窗口(),支持Firefox,ie,chrome
作者:bea
补增一个效果图! <html> <head> <title>模拟Popup</title> <style type="text/css"><!-- body{ margin:0; padding:0; text-align:center; } #container{ margin:50px auto; padding:10px auto; } #popupcontent
补增一个效果图!
<html>
<head>
<title>模拟Popup</title>
<style type="text/css"><!--
body{
margin:0;
padding:0;
text-align:center;
}
#container{
margin:50px auto;
padding:10px auto;
}
#popupcontent{
position:absolute;
border:1px solid #000000;
line-height:17px;
background-color:#F7F7F4;
visibility:hidden;
cursor:default;
padding:2 5 2 5px;
}
--></style><style type="text/css"> body{
margin:0;
padding:0;
text-align:center;
}
#container{
margin:50px auto;
padding:10px auto;
}
#popupcontent{
position:absolute;
border:1px solid #000000;
line-height:17px;
background-color:#F7F7F4;
visibility:hidden;
cursor:default;
padding:2 5 2 5px;
}</style>
<script type="text/javascript"><!--
/*
author :Krison
email:nickylans@163.com
qq:398504533
*/
var baseText = null;
var where = ""; // which link
var xNum = 10;
var yNum = 10;
var w = 112;
var h = 88;
var xCoord,yCoord;
function _test(evt)
{
var src = evt.srcElement || evt.target;
return src;
}
function checkwhere(e) {
if (document.layers){
xCoord = e.x - xNum;
yCoord = e.y + yNum;
}
else if (document.all){
xCoord = event.clientX - xNum;
yCoord = event.clientY + yNum;
}
else if (document.getElementById){
xCoord = e.clientX - xNum;
yCoord = e.clientY + yNum;
}
}
document.onmousedown = checkwhere;
function colordialogmouseout(obj){
obj.style.borderColor="";
obj.bgColor="";
}
function colordialogmouseover(obj){
obj.style.borderColor="#0A66EE";
obj.bgColor="#EEEEEE";
}
function colordialogmousedown(color){
ecolorPopup.value=color;
document.getElementById('popupcontent').blur();
document.getElementById("neon_color").style.color = color;
document.getElementById("popupcontent").style.visibility = "hidden";
}
function colordialogmore(){
var sColor=dlgHelper.ChooseColorDlg(ecolorPopup.value);
sColor = sColor.toString(16);
if (sColor.length < 6) {
var sTempString = "000000".substring(0,6-sColor.length);
sColor = sTempString.concat(sColor);
}
ecolorPopup.value="#"+sColor.toUpperCase();
popUp.document.body.blur();
}
function colordialog(event){
if(event.X)
{
var posX = event.x;
}
else
{
var posX = event.clientX;
}
if(event.Y)
{
var posY = event.y+10;
}
else
{
var posY = event.clientY+10;
}
var popUp = document.getElementById("popupcontent");
var bottomedge = document.body.clientHeight.posY;
popUp.style.left = document.body.scrollLeft + posX - popUp.offsetWidth+"px";
if (bottomedge < document.getElementById("popupcontent").offsetHeight)
popUp.style.top = document.body.scrollTop + posY- popUp.offsetHeight+"px";
else
popUp.style.top = document.body.scrollTop + posY+"px";
popUp.style.width = w + "px";
popUp.style.height = h + "px";
var e = _test(event);
e.onkeyup=colordialog;
ecolorPopup = e;
var ocbody;
var oPopBody = popUp;
var colorlist=new Array(18);
oPopBody.style.backgroundColor = "#f9f8f7";
oPopBody.style.border = "solid #999999 1px";
oPopBody.style.fontSize = "12px";
colorlist[0]="#FF0000";colorlist[1]="#FF9900";colorlist[2]="#99CC00";colorlist[3]="#33CCCC";
colorlist[4]="#FF00FF";colorlist[5]="#FFCC00";colorlist[6]="#FFFF00";colorlist[7]="#00FF00";
colorlist[8]="#00FFFF";colorlist[9]="#00CCFF";
colorlist[10]="#FF99CC";colorlist[11]="#FFCC99";colorlist[12]="#FFFF99";colorlist[13]="#CCFFCC";
colorlist[14]="#CCFFFF";colorlist[15]="#99CCFF";colorlist[16]="#CC99FF";colorlist[17]="#FFFFFF";
ocbody = "";
ocbody += "<table CELLPADDING=0 CELLSPACING=3>";
ocbody += "<tr height="20" width="20"><td align="center"><table style=" border:1px solid #808080;" width="12" height="12" bgcolor=""+e.value+""><tr><td></td></tr></table></td><td bgcolor="eeeeee" colspan="7" style=" font-size:12px;" align="center">当前颜色</td></tr>";
for(var i=0;i<colorlist.length;i++){
if(i%6==0)
ocbody += "<tr>";
ocbody += "<td width="14" height="16" style=" border:1px solid;" onMouseOut="parent.colordialogmouseout(this);" onMouseOver="parent.colordialogmouseover(this);" onMouseDown="parent.colordialogmousedown('"+colorlist[i]+"')" align="center" valign="middle"><table style=" border:1px solid #808080;" width="12" height="12" bgcolor=""+colorlist[i]+""><tr><td></td></tr></table></td>";
if(i%6==5)
ocbody += "</tr>";
}
ocbody += "</table>";
oPopBody.innerHTML=ocbody;
if (baseText == null)
baseText = oPopBody.innerHTML;
oPopBody.innerHTML = baseText ;
oPopBody.style.visibility = "visible";
}
function hidePopup()
{
var popUp = document.getElementById("popupcontent");
popUp.style.visibility = "hidden";
}
// --></script>
</head>
<body>
<div id="container">
<input type="text" value="" name="neon_color" id="neon_color" onkeydown="colordialog(event)" onmousedown="colordialog(event)" onfocus="colordialog(event)">
<!--
div尽量别放入table里,IE可能会解释出错
-->
<div id="popupcontent"></div>
</div>
</body>
</html>
[Ctrl+A 全选 注:
如需引入外部Js需刷新才能执行]
有用 | 无用
<html>
<head>
<title>模拟Popup</title>
<style type="text/css"><!--
body{
margin:0;
padding:0;
text-align:center;
}
#container{
margin:50px auto;
padding:10px auto;
}
#popupcontent{
position:absolute;
border:1px solid #000000;
line-height:17px;
background-color:#F7F7F4;
visibility:hidden;
cursor:default;
padding:2 5 2 5px;
}
--></style><style type="text/css"> body{
margin:0;
padding:0;
text-align:center;
}
#container{
margin:50px auto;
padding:10px auto;
}
#popupcontent{
position:absolute;
border:1px solid #000000;
line-height:17px;
background-color:#F7F7F4;
visibility:hidden;
cursor:default;
padding:2 5 2 5px;
}</style>
<script type="text/javascript"><!--
/*
author :Krison
email:nickylans@163.com
qq:398504533
*/
var baseText = null;
var where = ""; // which link
var xNum = 10;
var yNum = 10;
var w = 112;
var h = 88;
var xCoord,yCoord;
function _test(evt)
{
var src = evt.srcElement || evt.target;
return src;
}
function checkwhere(e) {
if (document.layers){
xCoord = e.x - xNum;
yCoord = e.y + yNum;
}
else if (document.all){
xCoord = event.clientX - xNum;
yCoord = event.clientY + yNum;
}
else if (document.getElementById){
xCoord = e.clientX - xNum;
yCoord = e.clientY + yNum;
}
}
document.onmousedown = checkwhere;
function colordialogmouseout(obj){
obj.style.borderColor="";
obj.bgColor="";
}
function colordialogmouseover(obj){
obj.style.borderColor="#0A66EE";
obj.bgColor="#EEEEEE";
}
function colordialogmousedown(color){
ecolorPopup.value=color;
document.getElementById('popupcontent').blur();
document.getElementById("neon_color").style.color = color;
document.getElementById("popupcontent").style.visibility = "hidden";
}
function colordialogmore(){
var sColor=dlgHelper.ChooseColorDlg(ecolorPopup.value);
sColor = sColor.toString(16);
if (sColor.length < 6) {
var sTempString = "000000".substring(0,6-sColor.length);
sColor = sTempString.concat(sColor);
}
ecolorPopup.value="#"+sColor.toUpperCase();
popUp.document.body.blur();
}
function colordialog(event){
if(event.X)
{
var posX = event.x;
}
else
{
var posX = event.clientX;
}
if(event.Y)
{
var posY = event.y+10;
}
else
{
var posY = event.clientY+10;
}
var popUp = document.getElementById("popupcontent");
var bottomedge = document.body.clientHeight.posY;
popUp.style.left = document.body.scrollLeft + posX - popUp.offsetWidth+"px";
if (bottomedge < document.getElementById("popupcontent").offsetHeight)
popUp.style.top = document.body.scrollTop + posY- popUp.offsetHeight+"px";
else
popUp.style.top = document.body.scrollTop + posY+"px";
popUp.style.width = w + "px";
popUp.style.height = h + "px";
var e = _test(event);
e.onkeyup=colordialog;
ecolorPopup = e;
var ocbody;
var oPopBody = popUp;
var colorlist=new Array(18);
oPopBody.style.backgroundColor = "#f9f8f7";
oPopBody.style.border = "solid #999999 1px";
oPopBody.style.fontSize = "12px";
colorlist[0]="#FF0000";colorlist[1]="#FF9900";colorlist[2]="#99CC00";colorlist[3]="#33CCCC";
colorlist[4]="#FF00FF";colorlist[5]="#FFCC00";colorlist[6]="#FFFF00";colorlist[7]="#00FF00";
colorlist[8]="#00FFFF";colorlist[9]="#00CCFF";
colorlist[10]="#FF99CC";colorlist[11]="#FFCC99";colorlist[12]="#FFFF99";colorlist[13]="#CCFFCC";
colorlist[14]="#CCFFFF";colorlist[15]="#99CCFF";colorlist[16]="#CC99FF";colorlist[17]="#FFFFFF";
ocbody = "";
ocbody += "<table CELLPADDING=0 CELLSPACING=3>";
ocbody += "<tr height="20" width="20"><td align="center"><table style=" border:1px solid #808080;" width="12" height="12" bgcolor=""+e.value+""><tr><td></td></tr></table></td><td bgcolor="eeeeee" colspan="7" style=" font-size:12px;" align="center">当前颜色</td></tr>";
for(var i=0;i<colorlist.length;i++){
if(i%6==0)
ocbody += "<tr>";
ocbody += "<td width="14" height="16" style=" border:1px solid;" onMouseOut="parent.colordialogmouseout(this);" onMouseOver="parent.colordialogmouseover(this);" onMouseDown="parent.colordialogmousedown('"+colorlist[i]+"')" align="center" valign="middle"><table style=" border:1px solid #808080;" width="12" height="12" bgcolor=""+colorlist[i]+""><tr><td></td></tr></table></td>";
if(i%6==5)
ocbody += "</tr>";
}
ocbody += "</table>";
oPopBody.innerHTML=ocbody;
if (baseText == null)
baseText = oPopBody.innerHTML;
oPopBody.innerHTML = baseText ;
oPopBody.style.visibility = "visible";
}
function hidePopup()
{
var popUp = document.getElementById("popupcontent");
popUp.style.visibility = "hidden";
}
// --></script>
</head>
<body>
<div id="container">
<input type="text" value="" name="neon_color" id="neon_color" onkeydown="colordialog(event)" onmousedown="colordialog(event)" onfocus="colordialog(event)">
<!--
div尽量别放入table里,IE可能会解释出错
-->
<div id="popupcontent"></div>
</div>
</body>
</html>
[Ctrl+A 全选 注:
如需引入外部Js需刷新才能执行]
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- JavaScript 中级笔记 第五章 面向对象的基础
- JavaScript 中级笔记 第四章 闭包
- JavaScript 中级笔记 第三章
- JavaScript 中级笔记 第二章
- JavaScript 中级笔记 第一章
- JavaScript 函数调用规则
- javascript 数组操作实用技巧
- 用JS写的简单的计算器实现代码
- prototype与jquery下Ajax实现的差别
- JS 参数传递的实际应用代码分析
- firefox(火狐)和ie浏览器禁止右键和禁止复制的代码
- javascript类继承机制的原理分析
- javascript 类定义的4种方法
- 一个简单的javascript类定义例子
- 超酷的鼠标拖拽翻页(分页)效果实现javascript代码
- javascript 函数介绍
- javascript 基础简介 适合新手学习
- 一个简单的JavaScript 日期计算算法
- 关于javascript 回调函数中变量作用域的讨论