제목은 쉽게 들리지만, 틀림없이이를 보장합니다. 나는 http://sarahnwatson.com에 사이트를 가지고있다. About 및 Contact 탭을 클릭하여 열어 본 모달 창이 있습니다. 탭은 모두 왼쪽에있는 정렬되지 않은 목록에 있습니다. 모달 창은 열 예정인 탭 바로 아래에 코딩되어 있습니다.jQuery 및 CSS 위치 요소가 화면 가운데에 표시됩니다.
필자가 알아낼 수없는 것은 jQuery 코드와 CSS 코드 사이에 다른 크기의 모달 윈도우를 화면 중앙에 배치하는 방법입니다. 그것들은 왼쪽에 위치한 요소 안에 있기 때문에 그 요소에 머물러 있습니다. JQuery와
ul.st_navigation{
position:relative;
width:100%;
top:140px;
left:-300px;
list-style:none;
}
ul.st_navigation li {
float:left;
clear:both;
margin-bottom:8px;
position:relative;
width:100%;
}
ul.st_navigation li span.st_link{
background: rgba(0,0,0,.8);
float:left;
position:relative;
line-height:50px;
padding:0px 20px;
-moz-box-shadow:0px 0px 2px #000;
-webkit-box-shadow:0px 0px 2px #000;
box-shadow:0px 0px 2px #000;
}
ul.st_navigation li span.st_arrow_down,
ul.st_navigation li span.st_arrow_up{
position:absolute;
margin-left:20px;
width:40px;
height:50px;
cursor:pointer;
-moz-box-shadow:0px 0px 2px #000;
-webkit-box-shadow:0px 0px 2px #000;
box-shadow:0px 0px 2px #000;
}
ul.st_navigation li span.st_arrow_down{
background: rgba(0,0,0,.8) url(../images/icons/down.png) no-repeat center center;
}
ul.st_navigation li span.st_arrow_up{
background: rgba(0,0,0,.8) url(../images/icons/up.png) no-repeat center center;
}
ul.st_navigation li span.st_modal{
position:absolute;
margin-left:20px;
width:40px;
height:50px;
cursor:pointer;
-moz-box-shadow:0px 0px 2px #000;
-webkit-box-shadow:0px 0px 2px #000;
box-shadow:0px 0px 2px #000;
background: rgba(0,0,0,.8) url(../images/icons/modal.png) no-repeat center center;
}
그리고 여기에 있습니다 : : 여기
는 탭에 대한 CSS 및 모달 창입니다 다음과 같이// Create a modal window
function createModal(elm) {
var $this = $(this);
var $body = $('body');
var winHeight = $(window).height();
var winWidth = $(window).width();
$body.prepend('<div id="blackout">');
$("#blackout").fadeIn(1000, function() {
$(elm).css({ left: '-9999px', display: 'block' });
var modalHeight = $(elm).height();
var modalWidth = $(elm).width();
var offsetH1 = winHeight/2;
var offsetH2 = (winHeight-modalHeight)/2;
var offsetW = (winWidth-modalWidth)/2;
$(elm)
.css({ top:offsetH1, left:offsetW, height:'0px' })
.animate({ top:offsetH2, height:modalHeight });
});
});
});
}
$list.find('.st_modal').live('click',function(){
var $this = $(this);
hideThumbs();
$this.closest('li').animate({ left: "0px" }, function() {
var $elem = $this.parent().next('div#modal_window');
createModal($elem);
});
});
HTML 구조는 다음과 같습니다
<ul id="st_nav" class="st_navigation">
<li>
<span class="st_link">About<span class="st_modal"></span></span>
<div id="modal_window" style="width:600px;">
<div class="about">
<span class="line"><span class="left">Name: </span>Sarah Watson</span>
<span class="line"><span class="left">Age: </span>16</span>
<span class="line"><span class="left">Genre: </span>Folk, Pop, Alternative</span>
<span class="line"><span class="left">Bio: </span></span><br />
I am 16yrs old and an aspiring singer/songwriter. I live in Northern California. My goals and ambitions in life are to someday have a popular song on the radio, whether I am singing it or someone else is. I love to hear just about any kind of music, learning something new is always fun!
</div>
</div>
</li>
<li>
<span class="st_link">Contact<span class="st_modal"></span></span>
<div id="modal_window" style="width: 450px;">
<h2>Contact</h2>
<form id="contact_form" method="POST" action="#">
<label>Name:</label><br />
<input type="text" name="name" /><br />
<label>Email:</label><br />
<input type="text" name="email" /><br />
<label>Reason:</label>
<label><input type="radio" name="reason" value="praise" checked='checked' /> Praise</label> <label><input type="radio" name="reason" value="booking" /> Booking</label><br />
<label>Message:</label><br />
<textarea name="name"></textarea><br />
<input type="submit" value="Submit" name="submit" /> <span class="status_message"></span>
</form>
</div>
</li>
</ul>
모두를 jsFiddle 데모에 넣으면 모든 사람에게 도움이됩니다. – Sparky
올바른 방향으로 당신을 가리 키기 위해, CSS를 고정 : 왼쪽, 왼쪽 : 50 %, 위쪽 : 50 % 위치로 설정하고 팝업의 높이와 너비의 절반 인 음의 상단 및 왼쪽 여백을 각각 계산하십시오. – lsuarez
jsFiddle을 사용해 보았습니다. 이 사이트는 너무 복잡합니다. 고맙습니다. @lthibodeaux, 나는 그것을 시도 할 것입니다. #modal_window를이 스펙으로 설정한다는 의미입니까? – watzon