jQuery UI 대화 상자가 자동으로 성장하거나 내용물에 맞게 수축시킵니다.
-
09-09-2019 - |
문제
양식을 표시하는 jQuery UI 대화 상자 팝업이 있습니다. 양식에서 특정 옵션을 선택함으로써 새로운 옵션이 형식으로 표시되어 키가 커질 수 있습니다. 이로 인해 기본 페이지에 스크롤 바가 있고 jQuery UI 대화 상자에는 스크롤 바가있는 시나리오로 이어질 수 있습니다. 이 2 스크롤 바 시나리오는 사용자에게보기 흉하고 혼란 스럽습니다.
스크롤 바를 표시하지 않고 항상 jQuery UI 대화 상자를 성장시키고 수축 할 수 있습니까? 메인 페이지의 스크롤 바만 보이는 것을 선호합니다.
해결책
업데이트: jQuery UI 1.8 기준으로 작업 솔루션 (두 번째 의견에 언급 된 바와 같이)은 다음과 같습니다.
width: 'auto'
Autoresize : True Option을 사용하십시오. 나는 설명 할 것이다 :
<div id="whatup">
<div id="inside">Hi there.</div>
</div>
<script>
$('#whatup').dialog(
"resize", "auto"
);
$('#whatup').dialog();
setTimeout(function() {
$('#inside').append("Hello!<br>");
setTimeout(arguments.callee, 1000);
}, 1000);
</script>
다음은 작업 예입니다.http://jsbin.com/ubowa
다른 팁
대답은
autoResize:true
대화 상자를 만들 때 속성. 이 작업을 수행하려면 대화 상자에 대한 높이를 설정할 수 없습니다. 따라서 Creator Method 또는 모든 스타일을 통해 대화 상자에 대한 고정 높이를 픽셀로 설정하면 Autoresize 속성이 작동하지 않습니다.
이것은 jQuery UI v1.10.3과 함께 작동합니다
$("selector").dialog({height:'auto', width:'auto'});
나에게 잘 작동하는 다음 속성을 사용했습니다.
$('#selector').dialog({
minHeight: 'auto'
});
높이는 자동으로 지원됩니다.
너비는 아닙니다!
어떤 종류의 자동차를 수행하려면 표시하는 DIV의 크기를 얻은 다음 창을 설정하십시오.
C# 코드에서 ..
TheDiv.Style["width"] = "200px";
private void setWindowSize(int width, int height)
{
string widthScript = "$('.dialogDiv').dialog('option', 'width', " + width +");";
string heightScript = "$('.dialogDiv').dialog('option', 'height', " + height + ");";
ScriptManager.RegisterStartupScript(this.Page, this.GetType(),
"scriptDOWINDOWSIZE",
"<script type='text/javascript'>"
+ widthScript
+ heightScript +
"</script>", false);
}
var w = $('#dialogText').text().length;
$("#dialog").dialog('option', 'width', (w * 10));
대화 상자의 폭을 크기를 조정하기 위해 필요한 일을했습니다.
IE7에서 작동하기 위해 필요한 경우 사용할 수 없습니다. 문서화되지 않은, 버기 및 지원되지 않은 {'width':'auto'}
옵션. 대신 다음을 추가하십시오 .dialog()
:
'open': function(){ $(this).dialog('option', 'width', this.scrollWidth) }
이든 .scrollWidth
오른쪽 패딩은 브라우저에 따라 다르기 때문에 (Firefox는 Chrome과 다릅니다) 주관적인 "충분히 양호한"픽셀을 추가 할 수 있습니다. .scrollWidth
, 또는 자신의 너비 계산 기능으로 교체하십시오.
포함하고 싶을 수도 있습니다 width: 0
당신 중 .dialog()
옵션은이 방법이 너비를 절대 줄이지 않으므로 증가하지 않기 때문에 옵션은 증가합니다.
IE7, IE8, IE9, IE10, IE11, FIREFOX 30, Chrome 35 및 Opera 22에서 작업하도록 테스트했습니다.