메뉴 건너뛰기

조회 수 4048 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

웹 페이지를 제작하면서 아주 편리하게 사용하는 alert, confirm창을 차별점을 두기 위해 디자인하고 팝업 형태로 제작의뢰가 들어오는 경우가 종종 있습니다.

 

사실 alert경우에는 동작하면 모든 javascript가 멈춘다는 특징외에는 출력메시지로 간단하게 경고 박스 띄우는 정도이기에 구현하는데 어려움은 없지만 confirm의 경우 확인, 취소버튼이 존재하며 확인이 눌린 경우 이후의 행위를 정의해야 하기에 callback 형태로 구현을 해야합니다.

 

아무래도 동작을 위해 modal의 태그와 css를 어느정도는 집어넣어야 하는 번거로움이 있지만 적용을 하고 나면 이후에 개인적인 취향으로 커스텀이 가능해집니다.

 

아래는 제가 작성해본 alert, confirm을 동작시키는 메소드와 예제입니다.(prompt도 존재하지만 개인적으로 사용하지 않아서 구성하지 않았습니다.)

 

Confirm, Alert 동작 메소드 정의하기

/**
 *  alert, confirm 대용 팝업 메소드 정의 <br/>
 *  timer : 애니메이션 동작 속도 <br/>
 *  alert : 경고창 <br/>
 *  confirm : 확인창 <br/>
 *  open : 팝업 열기 <br/>
 *  close : 팝업 닫기 <br/>
 */ 
var action_popup = {
    timer : 500,
    confirm : function(txt, callback){
        if(txt == null || txt.trim() == ""){
            console.warn("confirm message is empty.");
            return;
        }else if(callback == null || typeof callback != 'function'){
            console.warn("callback is null or not function.");
            return;
        }else{
            $(".type-confirm .btn_ok").on("click", function(){
                $(this).unbind("click");
                callback(true);
                action_popup.close(this);
            });
            this.open("type-confirm", txt);
        }
    },

    alert : function(txt){
        if(txt == null || txt.trim() == ""){
            console.warn("confirm message is empty.");
            return;
        }else{
            this.open("type-alert", txt);
        }
    },

    open : function(type, txt){
        var popup = $("."+type);
        popup.find(".menu_msg").text(txt);
        $("body").append("<div class='dimLayer'></div>");
        $(".dimLayer").css('height', $(document).height()).attr("target", type);
        popup.fadeIn(this.timer);
    },

    close : function(target){
        var modal = $(target).closest(".modal-section");
        var dimLayer;
        if(modal.hasClass("type-confirm")){
            dimLayer = $(".dimLayer[target=type-confirm]");
        }else if(modal.hasClass("type-alert")){
            dimLayer = $(".dimLayer[target=type-alert]")
        }else{
            console.warn("close unknown target.")
            return;
        }
        modal.fadeOut(this.timer);
        setTimeout(function(){
            dimLayer != null ? dimLayer.remove() : "";
        }, this.timer);
    }
}

action_popup 변수에 객체 기반의 메소드화로 구현하였습니다.

timer 속성은 모달이 노출되거나 닫힐때, 자연스러운 처리를 위한 애니메이션 속도이며

confirm 메소드는 confirm효과의 모달을 동작하는 메소드로 첫번째 파라미터는 노출시킬 텍스트, 두번째 파라미터는 callback을 정의합니다.

alert 메소드는 alert 효과의 모달을 동작시켜줍니다. 파라미터는 노출시킬 텍스트만 입력합니다.

openclose 메소드는 모달을 열고 닫는 처리를 위해 정의하였습니다.

 

간단한 설명은 이정도로 하고 사용 예제 및 결과는 아래를 참고해주세요.

 

사용 예제 소스 및 결과

 

 

css와 사용을 위한 display: none처리된 모달형태의 태그들을 심어두고 요청에 따라 모달을 노출하는 형태입니다.

 

 

결과

 


  1. Alert, Confirm을 모달 팝업으로 만들기

  2. No Image 29Apr
    by
    2019/04/29 Views 11313 

    랜덤 배너 노출 스크립트

  3. No Image 16Jan
    by
    2019/01/16 Views 1251 

    풍선도움말

  4. No Image 16Jan
    by
    2019/01/16 Views 1628 

    span - 동적으로 글자 바꾸기, 보이기 안보이기

  5. No Image 16Jan
    by
    2019/01/16 Views 2060 

    텍스트박스 입력제한(숫자,영문,한글,특수기호)

  6. No Image 16Jan
    by
    2019/01/16 Views 1517 

    금액에 점찍고 한글 표시하기

  7. No Image 16Jan
    by
    2019/01/16 Views 113560 

    유효한 링크인지 확인하는 JAVASCRIPT

  8. No Image 16Jan
    by
    2019/01/16 Views 1669 

    특정 부분 인쇄 자바스크립트

  9. No Image 16Jan
    by
    2019/01/16 Views 3519 

    엑셀처럼 td 사이즈 조절하기

  10. No Image 16Jan
    by
    2019/01/16 Views 1434 

    체크박스 전체 선택 및 해제, 반드시 1개 이상 선택 강제

  11. No Image 16Jan
    by
    2019/01/16 Views 1233 

    한글 또는 영문만이 존재하는지 체크

  12. No Image 16Jan
    by
    2019/01/16 Views 1234 

    기간 설정용 달력 팁앤노하우

  13. No Image 16Jan
    by
    2019/01/16 Views 1248 

    한글 짜르기

  14. No Image 16Jan
    by
    2019/01/16 Views 1323 

    두 날짜 사이 토일요일 개수 구하기

  15. No Image 16Jan
    by
    2019/01/16 Views 1546 

    div태그를 이용한 클릭시 레이어 띄우기

  16. No Image 16Jan
    by
    2019/01/16 Views 1124 

    배열과 Array객체

  17. No Image 16Jan
    by
    2019/01/16 Views 1119 

    에러처리

  18. No Image 16Jan
    by
    2019/01/16 Views 1265 

    랜덤(Random) / 난수 만들기

  19. No Image 16Jan
    by
    2019/01/16 Views 1183 

    input 태그에서 name과 id의 차이

  20. No Image 10Jan
    by
    2019/01/10 Views 2490 

    Javascript 로 초성검색하기

Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 13 Next
/ 13

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved