     
     private func hidePagingMenuControllers(page: Int) {
         switch (options.lazyLoadingPage, options.menuDisplayMode, page) {
-        case (.Three, _, previousIndex),
+        case (.Three, .Infinite, menuView?.previousPage ?? previousIndex),
+             (.Three, .Infinite, menuView?.nextPage ?? nextIndex),
+             (.Three, _, previousIndex),
              (.Three, _, nextIndex): break
         default: visiblePagingViewControllers.forEach { $0.view.alpha = 0 }
         }

                return
            }
            
            defer {
                updateCurrentPage(page)
                menuView.moveToMenu(page, animated: animated)
            }
            
            guard options.menuComponentType == .All else { return }
        case .MenuController:
            guard page < pagingViewControllers.count else { return }
            guard page != currentPage else { return }

        updateCurrentPage(page)
        currentViewController = pagingViewControllers[currentPage]
        delegate?.willMoveToPageMenuController?(currentViewController, previousMenuController: previousViewController)
        menuView?.moveToMenu(page)
        
        let duration = animated ? options.animationDuration : 0
        UIView.animateWithDuration(duration, animations: {
