File tree Expand file tree Collapse file tree 4 files changed +82
-0
lines changed Expand file tree Collapse file tree 4 files changed +82
-0
lines changed Original file line number Diff line number Diff line change @@ -262,6 +262,48 @@ section.event {
262262  border :  0 ;
263263}
264264
265+ .scroll-to-top  {
266+   position :  fixed;
267+   bottom :  50px  ;
268+   right :  30px  ;
269+   z-index :  10 ;
270+   display :  block;
271+   background :  var (--color-gray-500 );
272+   border-width :  0 ;
273+   height :  50px  ;
274+   width :  50px  ;
275+   border-radius :  50%  ;
276+   transition : 
277+     all 0.2s   linear, 
278+     opacity 0.3s  ;
279+   cursor :  pointer;
280+   opacity :  0 ;
281+   pointer-events :  none;
282+ }
283+ 
284+ .scroll-to-top .is-visible  {
285+   opacity :  1 ;
286+   pointer-events :  auto;
287+ }
288+ 
289+ .scroll-to-top : hover  {
290+   transform :  scale (1.1 );
291+ }
292+ 
293+ .scroll-to-top ::after  {
294+   content :  "" ;
295+   position :  absolute;
296+   left :  16px  ;
297+   z-index :  11 ;
298+   display :  block;
299+   width :  15px  ;
300+   height :  15px  ;
301+   border-top :  4px   solid var (--color-gray-100 );
302+   border-left :  4px   solid var (--color-gray-100 );
303+   transform :  rotate (45deg  );
304+   top :  20px  ;
305+ }
306+ 
265307/* Ember data uses styled elements in markdown blocks that conflict with the 
266308   default styles for blockquotes (because of ::before block that has an 
267309   absolutely positioned quote mark). 
Original file line number Diff line number Diff line change 1+ import  { modifier  } from  ' ember-modifier' 
2+ import  { on  } from  ' @ember/modifier' 
3+ 
4+ const  showOnScroll  =  modifier (function  showOnScroll (element ) {
5+   function  toggleVisibility () {
6+     if  (window .scrollY  >  window .innerHeight ) {
7+       element .classList .add (' is-visible' 
8+     } else  {
9+       element .classList .remove (' is-visible' 
10+     }
11+   }
12+ 
13+   toggleVisibility ();
14+   window .addEventListener (' scroll' 
15+ 
16+   return  () =>  {
17+     window .removeEventListener (' scroll' 
18+   };
19+ });
20+ 
21+ function  scrollToTopOfPageOnClick () {
22+   window .scrollTo ({ top:  0 , behavior:  ' smooth' 
23+ }
24+ 
25+ <template >
26+   <button 
27+     type =' button' 
28+     {{showOnScroll  
29+     {{on   ' click' scrollToTopOfPageOnClick }} 
30+     class =' scroll-to-top' 
31+     alt =' Scroll to top' 
32+   ></button >
33+ </template >
Original file line number Diff line number Diff line change @@ -19,6 +19,9 @@ export default class ProjectVersionController extends Controller {
1919  @service 
2020  project ; 
2121
22+   @service 
23+   fastboot ; 
24+ 
2225  @service  router ; 
2326  @service ( 'project' )  projectService ; 
2427
Original file line number Diff line number Diff line change 3131  </EsSidebar >
3232  <section  class =" content-wrapper" 
3333    {{ outlet }} 
34+     
35+     {{ #unless  this.fastboot.isFastBoot }} 
36+       <ScrollToTopButton  />
37+     {{ /unless }} 
3438  </section >
3539</div >
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments