下面是具体的js代码
1,首先定义几个自定义函数
代码

>웹 프론트엔드 >JS 튜토리얼 >JavaScript_javascript 기술로 작성된 사용자 정의 팝업 대화 상자 코드

JavaScript_javascript 기술로 작성된 사용자 정의 팝업 대화 상자 코드

WBOY
WBOY원래의
2016-05-16 18:36:201839검색

아래 사진은 제 디자인 아이디어입니다

다음은 구체적인 js 코드입니다
1. 먼저 여러 가지 커스텀 함수를 정의
코드

코드 복사 코드는 다음과 같습니다.

//배열인지 확인
function isArray(v)
{
return v && typeof v.length == 'number' && typeof v.splice == 'function'
}
//요소 생성
function createEle(tagName)
{
return document.createElement(tagName);
}
//본체에 하위 요소 추가
function appChild(eleName)
{
return document.body.appendChild(eleName); }
//본체에서 하위 요소 제거
function remChild(eleName)
{
return document.body.removeChild(eleName)
}

2 , 특정형식 구현 코드


코드 복사 코드는 다음과 같습니다

//팝업창, 제목(html 형식), html, 너비, 높이, 모달 대화상자 여부(true, false), 버튼(닫기 버튼이 기본값, 형식은 ['button 1', fun1 , 'Button 2', fun2] 배열 형태, 앞이 버튼 값, 뒤가 버튼 onclick 이벤트)
function showWindow(title,html,width,height,modal, 버튼)
{
//창이 너무 작지 않도록 방지
if (너비 < 300)
{
너비 = 300
}
if (높이 < 200; )
{
height = 200;
}
//마스크의 너비와 높이(즉, 전체 화면의 너비와 높이)를 선언합니다.
var w,h;
//표시 영역의 너비와 높이
var cw = document .body.clientWidth;
var ch = document.body.clientHeight
//본체의 너비와 높이
var sw = document.body.scrollWidth;
var sh = document.body.scrollHeight ;
//가시 영역 상단과 본문 상단 및 왼쪽 사이의 거리
var st = document .body.scrollTop;
w = cw :sw
h
// 창을 너무 크게 만들지 마세요
if (width > w)
{
width = w
}
if (height > h)
{
height = h;
}
//modal이 true인 경우, 즉 모달 대화 상자인 경우 투명 마스크를 생성해야 합니다
if (modal)
{
var 마스크 = createEle( 'div');
mask.style.cssText = "위치:absolute;왼쪽:0;top:0px;배경:# fff;filter:Alpha(Opacity=30);opacity:0.5;z-index:10000 ;width:" w "px;height:" h "px;";
appChild(mask);
}
//이것이 기본 양식입니다
var win = createEle('div' );
win.style.cssText = "위치:절대;왼쪽:" (sl cw/2 - 너비/2) " px;top:" (st ch/2 - 높이/2) "px;배경: #f0f0f0;z-index:10001;너비:" 너비 "px;높이:" 높이 "px;border:solid 2px #afccfe; ";
//제목 표시줄
var tBar = createEle('div' );
//afccfe,dce8ff,2b2f79
tBar.style.cssText = "margin:0;width:" width "px;height:25px; background:url(top-bottom.png);cursor: move;";
//제목 표시줄의 텍스트 부분
var titleCon = createEle('div');
titleCon.style.cssText = "float:left;margin:3px;";
titleCon.innerHTML = title;//firefox는 innerText를 지원하지 않으므로 여기서는 innerHTML이 사용됩니다.
tBar.appendChild(titleCon)
//제목 표시줄의 "닫기 버튼"
var closeCon = createEle('div');
closeCon.style.cssText = "float:right;width:20px;margin:3px;cursor:pointer; ";//cursor:hand는 firefox
closeCon에서 사용할 수 없습니다. innerHTML = "×";
tBar.appendChild(closeCon);
win.appendChild(tBar)
//Form 콘텐츠 부분에서 콘텐츠 크기가 초과되면 스크롤 막대가 나타납니다.
var htmlCon = createEle('div');
htmlCon.style.cssText = "text-align:center; width:" width "px;height:" (height - 50) "px ;overflow:auto;";
htmlCon.innerHTML = html;
win.appendChild(htmlCon);
//Form 하단 버튼 부분
var btnCon = createEle('div');
btnCon.style.cssText = "너비:" 너비 "px;height:25px;text-height:20px;배경:url(top-bottom.png);text-align:center;padding-top:3px;";
//매개변수 버튼이 배열인 경우 맞춤 버튼이 생성됩니다.
if (isArray(buttons))
{
var length =button.length
if (length > ; 0)
{
if (길이 % 2 == 0)
{
for (var i = 0 ; i {
//버튼 배열
var btn = createEle('button');
btn.innerHTML = 버튼[i];//firefox value 속성은 지원되지 않으므로 여기서는 innerHTML을 사용합니다.
// btn .value = 버튼[i];
btn.onclick = 버튼[i 1];
btnCon.appendChild(btn);
/ /사용자가 버튼 사이의 공간을 채웁니다.
var nbsp = createEle( '레이블');
nbsp.innerHTML = "  ";
btnCon.appendChild(nbsp);
}
}
}//이것은 기본 닫기 버튼
var btn = createEle('button');
// btn.setAttribute("value","close")
btn.innerHTML = '닫기'
// btn.value = '닫기';
btnCon.appendChild(btn);
appChild(win ); //마우스 스테이의 X 좌표
var mouseX = 0;//마우스 스테이의 Y 좌표
var mouseY = 0
//폼에서 상단까지의 거리 body
var toTop = 0;//폼에서 몸체 왼쪽까지의 거리
var toLeft = 0
//폼 이동 가능 여부 확인
var moveable = false;//제목 표시줄의 마우스 다운 이벤트
tBar.onmousedown = function()
{
var eve = getEvent()
moveable = true
mouseX = eve.clientX;
mouseY = eve.clientY;
toTop = parsInt(win.style.top);
toLeft = parsInt(win.style.left)
//마우스 이동 event
tBar.onmousemove = function()
{
if(moveable)
{
var eve = getEvent()
var x = toLeft eve.clientX - mouseX; 🎜>var y = toTop eve.clientY - mouseY
if (x > 0 && (x 너비 < w) && y > 0 && (y 높이 < h))
{
win.style.left = x "px";
win.style.top = y "px"
}
}
}
//마우스 이벤트를 내려놓으세요. 이는 tBar가 아닌 문서입니다.
document.onmouseup = function()
{
moveable = false; >// IE 및 Firefox와 호환되는 브라우저 이벤트를 가져오는 메서드
function getEvent()
{
return window.event || 인수.callee.caller.arguments[0]
} 🎜>/ 상단 제목 표시줄과 하단 버튼 표시줄의 "닫기 버튼"의 /Close 이벤트
btn.onclick = closeCon.onclick = function()
{
remChild(win)
remChild(마스크)
}
}


인스턴스 호출



코드 복사
코드는 다음과 같습니다. str = "내 양식의 효과 보기" showWindow('My Prompt box',str,850,250,true,['region',fun1 ,'미네랄 유형',fun2])

정의 및 호출을 포함한 더욱 완전하고 실용적인 코드
코드



코드 복사
코드는 다음과 같습니다.


사용자 정의 팝업 대화 상자
🎜>

<본문>








此脚本在ie,firefox浏览器下运行行过。。。。