[javascript] jQuery를 사용하여 간단한 팝업을 생성하는 방법

웹 페이지를 디자인하고 있습니다. mail이라는 div의 내용을 클릭하면 레이블 전자 메일 및 텍스트 상자가 포함 된 팝업 창을 표시하려면 어떻게해야합니까?



답변

먼저 CSS-원하는대로 조정하십시오.

a.selected {
  background-color:#1F75CC;
  color:white;
  z-index:100;
}

.messagepop {
  background-color:#FFFFFF;
  border:1px solid #999999;
  cursor:default;
  display:none;
  margin-top: 15px;
  position:absolute;
  text-align:left;
  width:394px;
  z-index:50;
  padding: 25px 25px 20px;
}

label {
  display: block;
  margin-bottom: 3px;
  padding-left: 15px;
  text-indent: -15px;
}

.messagepop p, .messagepop.div {
  border-bottom: 1px solid #EFEFEF;
  margin: 8px 0;
  padding-bottom: 8px;
}

그리고 자바 스크립트 :

function deselect(e) {
  $('.pop').slideFadeToggle(function() {
    e.removeClass('selected');
  });    
}

$(function() {
  $('#contact').on('click', function() {
    if($(this).hasClass('selected')) {
      deselect($(this));               
    } else {
      $(this).addClass('selected');
      $('.pop').slideFadeToggle();
    }
    return false;
  });

  $('.close').on('click', function() {
    deselect($('#contact'));
    return false;
  });
});

$.fn.slideFadeToggle = function(easing, callback) {
  return this.animate({ opacity: 'toggle', height: 'toggle' }, 'fast', easing, callback);
};

그리고 마지막으로 HTML :

<div class="messagepop pop">
  <form method="post" id="new_message" action="/messages">
    <p><label for="email">Your email or name</label><input type="text" size="30" name="email" id="email" /></p>
    <p><label for="body">Message</label><textarea rows="6" name="body" id="body" cols="35"></textarea></p>
    <p><input type="submit" value="Send Message" name="commit" id="message_submit"/> or <a class="close" href="/">Cancel</a></p>
  </form>
</div>

<a href="/contact" id="contact">Contact Us</a>

다음은 jsfiddle 데모 및 구현입니다.

상황에 따라 ajax 호출을 통해 팝업 컨텐츠를로드 할 수 있습니다. 콘텐츠를보기 전에 사용자에게 더 큰 지연을 줄 수 있으므로 가능하면이를 피하는 것이 가장 좋습니다. 이 방법을 사용하면 몇 가지 변경 사항을 적용 할 수 있습니다.

HTML은 다음과 같습니다.

<div>
    <div class="messagepop pop"></div> 
    <a href="/contact" id="contact">Contact Us</a>
</div>

그리고 JavaScript의 일반적인 아이디어는 다음과 같습니다.

$("#contact").on('click', function() {
    if($(this).hasClass("selected")) {
        deselect();               
    } else {
        $(this).addClass("selected");
        $.get(this.href, function(data) {
            $(".pop").html(data).slideFadeToggle(function() { 
                $("input[type=text]:first").focus();
            });
        }
    }
    return false;
});


답변

jQuery UI 대화 상자를 확인하십시오 . 다음과 같이 사용하십시오.

jQuery :

$(document).ready(function() {
    $("#dialog").dialog();
});

마크 업 :

<div id="dialog" title="Dialog Title">I'm in a dialog</div>

끝난!

그것이 가장 간단한 유스 케이스에 관한 것임을 명심하십시오. 문서 로 읽을 수있는 일에 대한 더 나은 아이디어를 얻기 위해 문서 를 읽는 것이 좋습니다 .


답변

나는 전화의 플러그인 jQuery를 사용 ColorBox을 그것이,

  1. 사용하기 매우 쉬운
  2. 경량
  3. 맞춤형
  4. jQuery에서 가장 멋진 팝업 대화 상자

답변

반응이 좋고 무게가 약 3KB 인 Magnific Popup을 사용해보십시오 .


답변

이 URL을 방문하십시오

jquery UI 대화 데모


답변

간단한 jquery 팝업 작성에 대한 훌륭한 자습서 라고 생각합니다 . 게다가 그것은 매우 아름답게 보입니다.


답변

여기에 정확하게 좋은 예가 있습니다 : http://www.queness.com/post/77/simple-jquery-modal-window-tutorial