LT-313: Adding scroll indicator in studies/series quick switch
This commit is contained in:
parent
3eae1c6878
commit
c25909de4c
@ -6,7 +6,7 @@
|
|||||||
<div class="studySwitch">
|
<div class="studySwitch">
|
||||||
<div class="studyBox"></div>
|
<div class="studyBox"></div>
|
||||||
<div class="switchHover studyHover clearfix">
|
<div class="switchHover studyHover clearfix">
|
||||||
<div class="scrollArea {{addMacOSClass}}">
|
<div class="scrollArea {{#if (isMac)}}is-mac{{/if}}">
|
||||||
{{>studyTimepointBrowser (clone this timepointViewType='key')}}
|
{{>studyTimepointBrowser (clone this timepointViewType='key')}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -26,7 +26,7 @@
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
<div class="switchHover seriesHover clearfix">
|
<div class="switchHover seriesHover clearfix">
|
||||||
<div class="scrollArea {{addMacOSClass}}">
|
<div class="scrollArea {{#if (isMac)}}is-mac{{/if}}">
|
||||||
<div class="thumbnailsWrapper">
|
<div class="thumbnailsWrapper">
|
||||||
{{#each thumbnail in thumbnailsList}}
|
{{#each thumbnail in thumbnailsList}}
|
||||||
{{>thumbnailEntry (clone this thumbnail=thumbnail)}}
|
{{>thumbnailEntry (clone this thumbnail=thumbnail)}}
|
||||||
|
|||||||
@ -47,10 +47,29 @@ Template.studySeriesQuickSwitch.onCreated(() => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const checkScrollArea = element => {
|
||||||
|
const { scrollHeight, clientHeight, offsetHeight, scrollTop } = element;
|
||||||
|
|
||||||
|
if(scrollHeight > offsetHeight + scrollTop) {
|
||||||
|
element.classList.add('show-scroll-indicator-down');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
element.classList.remove('show-scroll-indicator-down');
|
||||||
|
}
|
||||||
|
|
||||||
|
if(scrollTop > 0) {
|
||||||
|
element.classList.add('show-scroll-indicator-up');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
element.classList.remove('show-scroll-indicator-up');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
Template.studySeriesQuickSwitch.events({
|
Template.studySeriesQuickSwitch.events({
|
||||||
'mouseenter .js-quick-switch, mouseenter .js-quick-switch .switchSectionSeries'(event, instance) {
|
'mouseenter .js-quick-switch, mouseenter .js-quick-switch .switchSectionSeries'(event, instance) {
|
||||||
instance.$('.quickSwitchWrapper').addClass('overlay');
|
instance.$('.quickSwitchWrapper').addClass('overlay');
|
||||||
$(event.currentTarget).addClass('hover');
|
$(event.currentTarget).addClass('hover');
|
||||||
|
instance.$('.scrollArea').each((index, scrollAreaElement) => checkScrollArea(scrollAreaElement));
|
||||||
},
|
},
|
||||||
'mouseleave .js-quick-switch'(event, instance) {
|
'mouseleave .js-quick-switch'(event, instance) {
|
||||||
instance.$('.js-quick-switch, .switchSectionSeries').removeClass('hover');
|
instance.$('.js-quick-switch, .switchSectionSeries').removeClass('hover');
|
||||||
@ -58,6 +77,9 @@ Template.studySeriesQuickSwitch.events({
|
|||||||
},
|
},
|
||||||
'click .studyTimepointStudy'(event, instance) {
|
'click .studyTimepointStudy'(event, instance) {
|
||||||
instance.$('.switchSectionSeries').addClass('hover');
|
instance.$('.switchSectionSeries').addClass('hover');
|
||||||
|
},
|
||||||
|
'scroll .scrollArea'(event) {
|
||||||
|
checkScrollArea(event.currentTarget);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -75,7 +97,7 @@ Template.studySeriesQuickSwitch.helpers({
|
|||||||
// JS seems to be the only solution for now:
|
// JS seems to be the only solution for now:
|
||||||
// - http://stackoverflow.com/questions/6165472/custom-css-scrollbar-for-firefox/6165489#6165489
|
// - http://stackoverflow.com/questions/6165472/custom-css-scrollbar-for-firefox/6165489#6165489
|
||||||
// - http://stackoverflow.com/questions/18317634/force-visible-scrollbar-in-firefox-on-mac-os-x/18318273
|
// - http://stackoverflow.com/questions/18317634/force-visible-scrollbar-in-firefox-on-mac-os-x/18318273
|
||||||
addMacOSClass() {
|
isMac() {
|
||||||
return window.navigator.appVersion.indexOf('Mac') !== -1 ? 'is-mac' : '';
|
return window.navigator.appVersion.indexOf('Mac');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@ -152,13 +152,35 @@ $seriesSpacing = 2px
|
|||||||
|
|
||||||
.scrollArea
|
.scrollArea
|
||||||
margin-right: -22px;
|
margin-right: -22px;
|
||||||
min-height: 200px
|
min-height: 230px
|
||||||
max-height: 500px
|
max-height: 610px
|
||||||
overflow-x: hidden
|
overflow-x: hidden
|
||||||
overflow-y: scroll
|
overflow-y: scroll
|
||||||
width: calc(100% + 22px)
|
width: calc(100% + 22px)
|
||||||
|
|
||||||
&.is-mac
|
&.is-mac
|
||||||
padding-right: 22px
|
padding-right: 22px
|
||||||
|
|
||||||
|
&.show-scroll-indicator-up:before
|
||||||
|
&.show-scroll-indicator-down:after
|
||||||
|
font-family: FontAwesome
|
||||||
|
display: block
|
||||||
|
theme('color', '$activeColor')
|
||||||
|
font-size: 2em
|
||||||
|
width: 100%
|
||||||
|
height: 10px
|
||||||
|
position: absolute
|
||||||
|
z-index: 1
|
||||||
|
text-align: center
|
||||||
|
left: 0
|
||||||
|
|
||||||
|
&.show-scroll-indicator-up:before
|
||||||
|
top: -10px
|
||||||
|
content: '\f102'
|
||||||
|
|
||||||
|
&.show-scroll-indicator-down:after
|
||||||
|
bottom: 18px
|
||||||
|
content: '\f103'
|
||||||
|
|
||||||
.studyHover
|
.studyHover
|
||||||
height: 0
|
height: 0
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user