테스트 사이트 - 개발 중인 베타 버전입니다

모달창 닫기 버튼 질문 채택완료

길가던분 4년 전 조회 6,631

인터넷 뒤적여가며 모달을 만들고 있는대 a태그에 이미지 넣어서 모달을 띄워주는 버튼을 만들었는대

거기다가 닫기 버튼 기능을 넣어버리니까 누름과 동시에 열렸다가 바로 닫혀버리는대

한번누르면 열리고 다시한번 누르면 닫히게 하려면 어떻게 하면되니요?

</p>

<p><style>

#modalLayer{display:none; position:relative;}

#modalLayer .modalContent{width:250px; height:200px; padding:20px; border:1px solid #ccc;z-index:11; background:#fff;overflow:auto;}

</style></p>

<p><script>

$(document).ready(function(){

  var modalLayer = $("#modalLayer");

  var modalLink = $(".modalLink");

  var modalClose = $(".modalClose");

  var modalCont = $(".modalContent");

  var marginLeft = modalCont.outerWidth()/2;

  var marginTop = modalCont.outerHeight()/2; </p>

<p>  modalLink.click(function(){

    modalLayer.fadeIn("slow");

    modalCont.css({"margin-top" : '10px'});

    $(this).blur();

    $(".modalContent > a").focus(); 

    return false;

  });</p>

<p>  modalLink.click(function(){

    modalLayer.fadeOut("slow");

    modalLink.focus();

  });        

});

</script></p>

<p>

<a href="#modalLayer" class="modalLink"><img src="abcd.png"></a>

<div id="modalLayer">

  <div class="modalContent">

  모달내용

  <div>

  </div></p>

<p>

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

채택된 답변
+20 포인트
4년 전

</p>

<p>$(document).ready(function(){

  var modalLayer = $("#modalLayer");

  var modalLink = $(".modalLink");

  var modalClose = $(".modalClose");

  var modalCont = $(".modalContent");

  var marginLeft = modalCont.outerWidth()/2;

  var marginTop = modalCont.outerHeight()/2; 

  modalLink.click(function(){

    modalLayer.fadeToggle("slow");

    modalCont.css({"margin-top" : '10px'});

    $(this).blur();

    $(".modalContent > a").focus(); 

    return false;

  });      

});</p>

<p>

 

fadeToggle기능을 사용하세요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

길가던분
4년 전
테스트 해보니까 정말 잘됩니다. 앞으로 모달쪽 공부를 좀더 해야겠습니다.!

댓글을 작성하려면 로그인이 필요합니다.

o
4년 전

fadeIn fadeOut두개로 나누지 마시고 fadeToggle로 click이벤트를 한번만 사용하셔서 짜보시면 좋을것같네요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

길가던분
4년 전
조언 감사합니다. 모달 기능을 좀 더 공부해봐야겠습니다.^^

댓글을 작성하려면 로그인이 필요합니다.

4년 전

같은 항목(modalLink)에 대한 클릭 이벤트가 두 번 작성되어 있어 열리는 이벤트 한 번/닫히는 이벤트 한 번이 연속으로 실행된 듯합니다.

위에서 코드 작성해주신 것처럼 fadeToggle 기능을 이용하시면 열려있을 경우 닫힘/닫혀있을 경우 열림으로 작동하게 됩니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

길가던분
4년 전
감사합니다. fadeToggle 모달 기능에 대해 좀더 연구해봐야겠습니다.

댓글을 작성하려면 로그인이 필요합니다.

https://codepen.io/ww9603/pen/KKgVdOV 코드팬으로 대충 예시를 만들어봣는대 이미지를 한번 누르면 모달창이 뜨고 한번 더누르면 닫히게 만드려고합니다.

지금은 이미지를 누르면 뜨자마자 바로 닫혀버립니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

길가던분
4년 전
지금은 잘됩니다. 혹시나 궁금하신 분들은 위에 코드팬 주소를 참고하세욤^^

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인