diff --git a/components/Navbar.qml b/components/Navbar.qml
index f7a55abf..3ea7c07a 100644
--- a/components/Navbar.qml
+++ b/components/Navbar.qml
@@ -32,6 +32,8 @@ import "." as MoneroComponents
 
 Rectangle {
     default property list<MoneroComponents.NavbarItem> items
+    property alias currentIndex: repeater.currentIndex
+    property alias previousIndex: repeater.previousIndex
 
     color: "transparent"
     height: grid.height
@@ -100,7 +102,10 @@ Rectangle {
         }
 
         Repeater {
+            id: repeater
             model: items.length
+            property int currentIndex: 0
+            property int previousIndex: 0
 
             RowLayout {
                 spacing: 0
@@ -149,7 +154,11 @@ Rectangle {
                             hoverEnabled: true
                             cursorShape: Qt.PointingHandCursor
 
-                            onClicked: items[index].selected()
+                            onClicked: {
+                                repeater.previousIndex = repeater.currentIndex;
+                                repeater.currentIndex = index;
+                                items[index].selected()
+                            }
                         }
                     }
 
diff --git a/pages/Advanced.qml b/pages/Advanced.qml
index fbd45d76..6aa8ac46 100644
--- a/pages/Advanced.qml
+++ b/pages/Advanced.qml
@@ -43,6 +43,7 @@ ColumnLayout {
     property alias state: stateView.state
 
     MoneroComponents.Navbar {
+        id: navbarId
         Layout.alignment: Qt.AlignHCenter
         Layout.topMargin: height
         Layout.bottomMargin: height
@@ -128,7 +129,7 @@ ColumnLayout {
                     PropertyAnimation {
                         target: enterItem
                         property: "x"
-                        from: 0 - target.width
+                        from: (navbarId.currentIndex < navbarId.previousIndex ? 1 : -1) * - target.width
                         to: 0
                         duration: 300
                         easing.type: Easing.OutCubic
@@ -137,7 +138,7 @@ ColumnLayout {
                         target: exitItem
                         property: "x"
                         from: 0
-                        to: target.width
+                        to: (navbarId.currentIndex < navbarId.previousIndex ? 1 : -1) * target.width
                         duration: 300
                         easing.type: Easing.OutCubic
                     }
diff --git a/pages/settings/Settings.qml b/pages/settings/Settings.qml
index 703ea346..fdf03ce6 100644
--- a/pages/settings/Settings.qml
+++ b/pages/settings/Settings.qml
@@ -49,6 +49,7 @@ ColumnLayout {
     property alias settingsStateViewState: settingsStateView.state
 
     MoneroComponents.Navbar {
+        id: navbarId
         Layout.alignment: Qt.AlignHCenter
         Layout.topMargin: height
         Layout.bottomMargin: height
@@ -145,7 +146,7 @@ ColumnLayout {
                     PropertyAnimation {
                         target: enterItem
                         property: "x"
-                        from: 0 - target.width
+                        from: (navbarId.currentIndex < navbarId.previousIndex ? 1 : -1) * - target.width
                         to: 0
                         duration: 300
                         easing.type: Easing.OutCubic
@@ -154,7 +155,7 @@ ColumnLayout {
                         target: exitItem
                         property: "x"
                         from: 0
-                        to: target.width
+                        to: (navbarId.currentIndex < navbarId.previousIndex ? 1 : -1) * target.width
                         duration: 300
                         easing.type: Easing.OutCubic
                     }