2011-12-21 16 views

答えて

1

jQuery UIではこれほど多くの作業はありませんでした。しかし、ここにはあなたがそこに持っているもののための修正があります、明らかに私はmaxWidthを50pxに設定しましたので、変更してください!

$(document).ready(function(){ 

var myDialog = $("#myDialog").dialog({ 
    autoOpen: false, 
    maxWidth: "50px", 
    height: 'auto', 
}); 

$("#showDialog").click(function(){ 
    myDialog.dialog("open"); 
}); 

}); 
+0

ダイアログでは事前定義の幅が使用され、使用できる最大幅(= maxWidth)は使用されません。そして、もし私が数字のためにユニットを使うならば、maxWidthは完全に無視されます。 –

+1

maxWidthが設定されない理由がわかりません。 CSSで#myDialogのスタイルにmax-widthを設定してみませんか? – BennyC

+0

max-widthがジョブを実行しました。可能な限り美しいものではありませんが、現在は機能しています。ありがとうございました。 –

0

は、あなただけの「幅」と「高さ」プロパティを削除することができませんか? http://jsfiddle.net/Ve79f/

+0

この場合、標準幅が使用されますこのダイアログは自動的に拡大縮小されません。長いテキストの場合、ダイアログの幅は小さくなりますが、ダイアログの高さは大きくなります。 –

2

実際にダイアログがその幅を超えないことを保証れるCSSのmax-widthプロパティを設定するが、結果のダイアログが不安定に振る舞うが、(オーバーフローが信頼できない、サイズ変更ハンドルは、間違った場所にあってもよいです)jQueryはあなたの設定を知らないので。ここに私の解決策があります:

var maxWidth = 750; 
    var maxHeight = 600; 

    var popup = $("<div>" + content + "</div>") 
     .dialog({ 
      autoOpen: true, 
      title: title, 
      hide: { effect: 'drop', direction: "up" }, 
      height: 'auto', 
      width: 'auto', 
      maxHeight: maxHeight, 
      maxWidth: maxWidth, 
      modal: modal, 
      buttons: { 
       Ok: function() { 
        $(this).dialog("close"); 
       } 
      } 
     }); 

    var w = popup.dialog("widget").width(); 
    console.log("w=",w); 
    if (w > maxWidth) { 
     popup.dialog("option", "width", maxWidth) 
     popup.dialog("widget").width(maxWidth); 
    } 

    var h = popup.dialog("widget").height(); 
    console.log("h=",h); 
    if (h > maxHeight) { 
     popup.dialog("option", "height", maxHeight) 
     popup.dialog("widget").height(maxHeight); 
    } 

    w = popup.dialog("widget").width(); 
    console.log("w2=",w); 
    h = popup.dialog("widget").height(); 
    console.log("h2=",h); 
0

少し「反応しやすい」ものをお望みなら、私はこれをお勧めします。ダイアログの最大サイズと最小サイズを修正し、ウィンドウサイズに合わせて調整します。

ダイアログに応じて、minまたはmaxの値を変更します。これらの制限の間に、ウィンドウサイズの50%にスケールされます。それは中心に置かれています。

$(document).ready(function() { 

     var maxWidth = 500; 
     var maxHeight = 300; 
     var minWidth = 250; 
     var minHeight = 180; 

     function diagSize() { 
      var wid = $(window).width() * 0.50; 
      if (wid > maxWidth) { 
       wid = maxWidth; 
      } else if (wid < minWidth) { 
       wid = minWidth 
      } 
      var hei = $(window).height() * 0.50; 
      if (hei > maxHeight) { 
       hei = maxHeight; 
      } else if (hei < minHeight) { 
       hei = minHeight 
      } 
      $("#mydialog").dialog({height: hei, width: wid}); 
      $("#mydialog").dialog("option", "position", {my: "center", at: "center", of: window}); 
     } 

は、その後、あなたのダイアログ:

var mydialog = $("#mydialog).dialog({ 
      autoOpen: false, 
      closeOnEscape: true, 
      modal: true, 
      resizable: false, 
      buttons: { 
       "<spring:message code="action.cancel"/>": function() { 
        $(this).dialog("close"); 
       }, 
       "<spring:message code="action.next"/>": function() { 
        $.post({ 
         url: '/myurl', 
         success: function(data) { 

         }, 
        }); 
       } 
      } 
     }); 

そして最後に、2ケースであなたのダイアログのサイズを変更:ウィンドウをリサイズし、開口部の前に:$(文書を)閉じる

$(window).resize(diagSize); 

$("#btnopenmydialog").on('click', function() { 
    diagSize(); 
    mydialog.dialog("open"); 

.ready

}); 
関連する問題