Переглянути джерело

Post merge - reapply sidebar scroll fix

Vijayakrishnan 3 роки тому
батько
коміт
039fc850a9
1 змінених файлів з 16 додано та 7 видалено
  1. 16 7
      resources/views/layouts/patient.blade.php

+ 16 - 7
resources/views/layouts/patient.blade.php

@@ -389,13 +389,22 @@ $isOldClient = (date_diff(date_create(config('app.point_impl_date')), date_creat
 <script>
 	(function() {
 		function init() {
-			$('#sidebarMenu')
-				.off('scroll')
-				.on('scroll', function() {
-					localStorage.sidebarMenuScrollTop = $(this).scrollTop();
-				});
-			if (localStorage.sidebarMenuScrollTop) {
-				$('#sidebarMenu').scrollTop(+localStorage.sidebarMenuScrollTop);
+			let sbMenu = $('#sidebarMenu');
+			sbMenu
+					.off('scroll')
+					.on('scroll', function() {
+						localStorage.sidebarMenuScrollTop = $(this).scrollTop();
+					});
+			if(localStorage.sidebarMenuScrollTop) {
+				sbMenu.scrollTop(+localStorage.sidebarMenuScrollTop);
+				let sbMenuPos = sbMenu.offset(),
+						activeItem = sbMenu.find('.nav-item>.nav-link.active').first(),
+						activeItemPos = activeItem.offset();
+				if(activeItem.length) {
+					if(activeItemPos.top < sbMenuPos.top || (activeItemPos.top + activeItem.outerHeight(true)) > (sbMenuPos.top + sbMenu.outerHeight(true))) {
+						activeItem[0].scrollIntoView({behavior : "auto", block: "nearest"});
+					}
+				}
 			}
 		}
 		addMCInitializer('sidebarMenu', init, '#sidebarMenu')