2013-06-29 2 views
1

У меня есть WinJS.UI.Flyout, что я хотел бы расширить вверх, когда контент будет добавлен к нему, пока он будет виден. Якорь вылета находится в нижней части экрана. Если я вызываю flyout.show(anchor, 'top');, он сначала отображается правильно, но затем расширяет нижнюю часть экрана при добавлении контента. Если я вызываю flyout.show(anchor, 'bottom');, он расширяется вверх, но он также перекрывает элемент привязки, который я не хочу.Сделать WinJS.UI.Fly развернуть вверх

ответ

1

Это можно сделать с помощью дисплея -ms-flexbox для всплывающего окна и упаковки его содержимого до конца.

всплывающий фон может быть установлен на прозрачный; его размер может быть установлен максимально возможным; таким образом, он служит внешним контейнером, который выравнивает его содержимое до конца. расширяемый контент помещается внутри другого div flyout-content с фоном как белый.

<div data-win-control="WinJS.UI.Flyout" id="flyout"> 
    <div class="flyout-content"> 
     expandable content here 
     expandable content here 
     expandable content here 
     expandable content here 
    </div> 
</div> 

CSS:

#flyout 
{ 
    background-color: transparent; 
    border: 0; 
    display: -ms-flexbox; 
    -ms-flex-pack: end; 
    -ms-flex-direction: column; 
    height: 400px; 
} 

.flyout-content 
{ 
    padding: 20px; 
    background-color: white; 
} 
+0

Это определенно получил вид, что я хотел, но предустановленного 'height' на' # flyout' означает, что существует невидимый раздел в приложении, где постукивание не закрыть Вылететь. Есть ли способ исправить это? –

+0

это, безусловно, обходной путь. '# flyout' сам может захватить событие click, и если это цель - скройте себя. но это еще больше расширяет обходной путь. – Sushil