2012-06-26 46 views
1

ScrollableView的高度我使用Dojo Toolkit的1.7.2從http://ajax.googleapis.com/ajax/libs/dojo/1.7.2/dojo/dojo.js道場Tollkit - 內部對話

我需要顯示內部對話滾動(與幫助觸摸)的內容。另外,如果可能的話,我需要在對話框內的視圖之間進行轉換,例如在移動設備上。

我做什麼(簡化代碼版本):

如果我這樣做,對話儘量按照內容的整個高度。

下一個嘗試:

var dialog = new Dialog({ 
    style: { 
     width: 600, 
     height: 400 
    } 
}); 

dialog.resize({w: 600, h: 400}); 

現在對話已固定高度,但內ScrollableView實例不會滾動其內容的底部。

當我深入瞭解源代碼後,發現ScrollableView繼承自dojox/mobile/_ScrollableMixin,它繼承自dojox/mobile/scrollable。

resize() dojox/mobile/scrollable的函數使用窗口高度來計算滾動功能。

有沒有實現我自己版本的ScrollableView時需要什麼的方法?


解決方案:

var dialogRect = domGeometry.getMarginBox(dialog.domNode); 
var headerRect = domGeometry.getMarginBox(dialog.titleBar); 
var containerNodePaddingTop = domStyle.get(dialog.containerNode, "paddingTop"); 
var containerNodePaddingBottom = domStyle.get(dialog.containerNode, "paddingBottom"); 

var viewHeight = dialogRect.h - headerRect.h - containerNodePaddingTop - containerNodePaddingBottom; 
var view = new ScrollableView({ 
    selected: true, 
    height: viewHeight.toString() + "px" 
}); 
// or 
// view.set("height", viewHeight.toString() + "px"); 
+0

歐內斯特·弗裏德曼山:你好。禁止使用「==========」? – kostik

+0

我敢打賭這是相關的:http://grokbase.com/t/dojo/dojo-checkins/115fx49dpw/dojo-12937-mobile-scrollable-view-doesnt-work-inside-tooltip-dialog – mschr

+0

嘗試設置height屬性到'自動'? – mschr

回答

0

固定這樣說:

var Name = 'yourdialogid'; 
dojo.query("#"+Name+" .dijitDialogPaneContent").forEach(function(node, index, arr){ 
    dojo.style(node,"overflow","auto"); 
    dojo.style(node,"height",(dojo.position(dijit.byId(Name).domNode).h-80)+"px"); 
}); 
+0

您需要修改80以符合您的情況 – simondiercks