diff --git a/media/css/seahub.css b/media/css/seahub.css index 1ecd75e444..59e4ae62c7 100644 --- a/media/css/seahub.css +++ b/media/css/seahub.css @@ -747,14 +747,15 @@ textarea:-moz-placeholder {/* for FF */ transition: all 0.3s ease; } .home-side-nav { - display:flex; - flex-direction:column; padding:0; } +.home-side-nav:hover { + overflow:hidden; +} .side-nav-con { overflow:hidden; padding:20px; - flex-grow:1; + height:calc(100% - 50px); } .side-nav-con:hover { overflow-y:auto; diff --git a/static/scripts/app/views/side-nav.js b/static/scripts/app/views/side-nav.js index 8d077751bb..c404ccc0d1 100644 --- a/static/scripts/app/views/side-nav.js +++ b/static/scripts/app/views/side-nav.js @@ -115,12 +115,25 @@ define([ }, setCurTab: function(cur_tab, options) { + if (this.$curTab) { + this.$('.tab-cur').removeClass('tab-cur'); + this.$curTab.addClass('tab-cur'); + return; + } + this.data.cur_tab = cur_tab || this.default_cur_tab; if (options) { $.extend(this.data, options); } this.data.show_group_list = $('#group-nav .grp-list:visible').length ? true : false; this.render(); + + var curTabTop = this.$('.tab-cur').offset().top; + var visibleHeight = $(window).height() - this.$('.side-nav-footer').outerHeight(true); + if (curTabTop > visibleHeight) { + this.$('.side-nav-con').css({'overflow':'auto'}).scrollTop(curTabTop - visibleHeight + this.$('.tab-cur').outerHeight(true) + 10).removeAttr('style'); + } + }, updateGroups: function() { @@ -166,9 +179,13 @@ define([ return false; }, - visitLink: function(event) { + visitLink: function(e) { + if ($(e.target).attr('href') !== "#") { + this.$curTab = $(e.target).parent(); + } + if ($(window).width() < 768) { - if ($(event.target).attr('href') !== "#") { + if ($(e.target).attr('href') !== "#") { // except for groups toggle link this.hide(); }