2015-06-05 68 views
4

如果您在打開側邊(漢堡包)菜單時查看所有Google應用,則該應用的內容呈灰色。打開側邊菜單時的灰色頁面內容

下面是一個例子

enter image description here

是否有可能與離子框架ion-side-menu做到這一點?如果是這樣,怎麼樣?

謝謝。

回答

3

我相信這不是Ionic的標準,但如果你看看$ionicModal,你可以看到他們在那裏使用相同的技術。

如果你看看他們使用此選項的CSS,你應該添加下列到正確的類:

opacity: .5; 
transition: opacity 300ms ease-in-out; 
background-color: #000; 

當側菜單被暴露你應該以某種方式檢測,然後應用上面的CSS到<ion-nav-view>

我認爲你可以創建一個指令或其他手錶$ionicSideMenuDelegate.isOpen()功能,並根據結果應用或刪除CSS。

+1

謝謝,它有助於找出解決方案。 –

5

根據Mark Veenstra的回答,這裏是我帶來的結果。

在CSS:

.opaque-content { 
    opacity: .5; 
    transition: opacity 300ms ease-in-out; 
} 

在控制器中,我一邊看一邊菜單的打開率,並設置一個標誌:

$scope.$watch(
    function() { 
     return $ionicSideMenuDelegate.getOpenRatio(); 
    }, 
    function (ratio) { 
     $scope.sidemenuopened = (ratio == 1); 
    }); 

在模板我使用ng-class有條件適用等級:

<ion-side-menus> 
    <ion-side-menu-content ng-class="{'opaque-content' : sidemenuopened}"> 
     <ion-nav-bar> 
     </ion-nav-bar> 

    </ion-side-menu-content> 
</ion-side-menus> 

這個工作,並使頁面內容部分tra當側面菜單被打開時,這是不可用的。

2

你只需要CSS就可以了。

當側面菜單打開時,有一個CSS類菜單打開添加到正文標籤。

所以,只需添加以下內容即可獲得您想要的內容。

body.menu-open ion-side-menu-content { 
    -webkit-transition: opacity 300ms ease-in-out; 
    transition: opacity 300ms ease-in-out; 
    opacity: 0.5; 
} 
0

根據Marius Bancila的回答,這裏是我的解決方案。

在CSS:nothing

在控制器中,我一邊看一邊菜單的打開率,並設置一個標誌:

$scope.$watch(
    function() { 
     return $ionicSideMenuDelegate.getOpenRatio(); 
    }, 
    function (ratio) { 
     $scope.sidemenuopened = (ratio == 1); 
    }); 

在我使用的模態背景背景類,而不是你的模板不透明的內容,它根本不是灰色的:

<ion-side-menus> 
    <ion-side-menu-content> 
     <div ng-class="{'modal-backdrop-bg' : sidemenuopened}"></div> 
     <ion-nav-bar> 
     </ion-nav-bar> 

    </ion-side-menu-content> 
</ion-side-menus> 

有了這個,你將和谷歌有相同的效果!

相關問題