Просмотр исходного кода

add a sticky rules on sidebar's navigation

AlexiCauvin 6 лет назад
Родитель
Сommit
fb6790a89c
2 измененных файлов: 44 добавлений и 70 удалений
  1. 27 30
      src/container/Sidebar.jsx
  2. 17 40
      src/css/Sidebar.styl

+ 27 - 30
src/container/Sidebar.jsx Просмотреть файл

@@ -65,38 +65,35 @@ class Sidebar extends React.Component {
65 65
     return (
66 66
       <div className={classnames('sidebar', {'sidebarclose': sidebarClose})}>
67 67
         <div className='sidebar__expand' onClick={this.handleClickToggleSidebar}>
68
-          { /* <i className={classnames('fa fa-fw', {'fa-plus-square-o': sidebarClose, 'fa-minus-square-o': !sidebarClose})} /> */ }
69
-          <button className='hamburger hamburger--spring sidebar__expand__btnHamburger' type='button'>
70
-            <span className='hamburger-box sidebar__expand__btnHamburger__box'>
71
-              <span className='hamburger-inner sidebar__expand__btnHamburger__box__icon' />
72
-            </span>
73
-          </button>
68
+          <i className={classnames('fa fa-arrow-left', {'fa-arrow-right': sidebarClose, 'fa-arrow-left': !sidebarClose})} />
74 69
         </div>
75 70
 
76
-        <nav className='sidebar__navigation'>
77
-          <ul className='sidebar__navigation__workspace'>
78
-            { workspaceList.map((ws, i) =>
79
-              <WorkspaceListItem
80
-                number={++i}
81
-                wsId={ws.id}
82
-                name={ws.title}
83
-                app={app}
84
-                lang={activeLang}
85
-                activeFilterList={ws.id === workspaceIdInUrl ? workspace.filter : []}
86
-                isOpenInSidebar={ws.isOpenInSidebar}
87
-                onClickTitle={() => this.handleClickWorkspace(ws.id, !ws.isOpenInSidebar)}
88
-                onClickAllContent={this.handleClickAllContent}
89
-                onClickContentFilter={this.handleClickContentFilter}
90
-                key={ws.id}
91
-              />
92
-            )}
93
-          </ul>
94
-        </nav>
95
-
96
-        <div className='sidebar__btnnewworkspace'>
97
-          <button className='sidebar__btnnewworkspace__btn btn btn-success'>
98
-            {t('Sidebar.create_new_workspace')}
99
-          </button>
71
+        <div className='sidebarSticky'>
72
+          <nav className='sidebar__navigation'>
73
+            <ul className='sidebar__navigation__workspace'>
74
+              { workspaceList.map((ws, i) =>
75
+                <WorkspaceListItem
76
+                  number={++i}
77
+                  wsId={ws.id}
78
+                  name={ws.title}
79
+                  app={app}
80
+                  lang={activeLang}
81
+                  activeFilterList={ws.id === workspaceIdInUrl ? workspace.filter : []}
82
+                  isOpenInSidebar={ws.isOpenInSidebar}
83
+                  onClickTitle={() => this.handleClickWorkspace(ws.id, !ws.isOpenInSidebar)}
84
+                  onClickAllContent={this.handleClickAllContent}
85
+                  onClickContentFilter={this.handleClickContentFilter}
86
+                  key={ws.id}
87
+                />
88
+              )}
89
+            </ul>
90
+          </nav>
91
+
92
+          <div className='sidebar__btnnewworkspace'>
93
+            <button className='sidebar__btnnewworkspace__btn btn btn-success'>
94
+              {t('Sidebar.create_new_workspace')}
95
+            </button>
96
+          </div>
100 97
         </div>
101 98
       </div>
102 99
     )

+ 17 - 40
src/css/Sidebar.styl Просмотреть файл

@@ -14,19 +14,6 @@
14 14
     &:hover
15 15
       color white
16 16
 
17
-/**** MENU HAMBURGER ON EXPAND BAR *****/
18
-
19
-.hamburger--spring .hamburger-inner
20
-  margin 4px 8px
21
-
22
-.hamburger--spring .hamburger-inner::before
23
-  top 7px
24
-
25
-.hamburger--spring .hamburger-inner::after
26
-  top 14px
27
-
28
- /***************************************/
29
-
30 17
 .sidebar
31 18
   min-height 100%
32 19
   background-color secondColor
@@ -35,6 +22,10 @@
35 22
 sidebar-width = 300px
36 23
 sidebar-animate-speed = 0.5s
37 24
 
25
+.sidebarSticky
26
+  position sticky
27
+  top 87px
28
+
38 29
 leftside()
39 30
   flex-grow 0
40 31
   height 100%
@@ -45,44 +36,22 @@ leftside()
45 36
   position relative
46 37
   transition all sidebar-animate-speed
47 38
   width sidebar-width
39
+  z-index 2
48 40
   &.sidebarclose
49 41
     width 0
50
-    .hamburger--spring
51
-      .hamburger-inner
52
-        transition-delay 0.22s
53
-        background-color transparent
54
-        &::before
55
-            top -3px
56
-            transition top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1)
57
-            transform translate3d(0, 10px, 0) rotate(45deg)
58
-        &::after
59
-            top -3px
60
-            transition top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1)
61
-            transform translate3d(0, 10px, 0) rotate(-45deg)
62 42
   &__expand
63 43
     position absolute
64 44
     top 0
65
-    right -49px
66
-    padding 4px
45
+    right -40px
46
+    padding 4px 10px
67 47
     border-left 1px solid off-white
68 48
     border-bottom-right-radius 15px
69 49
     cursor pointer
70 50
     background-color blue
71 51
     color white
72 52
     transition all sidebar-animate-speed
73
-    &__btnHamburger
74
-      padding 0
75
-      &:focus
76
-        outline none
77
-      &__box
78
-        &__icon, &__icon::before, &__icon::after
79
-          width 20px
80
-          height 2px
81
-          background-color off-white
82
-        &__icon::before
83
-          top 8px
84
-        &__icon::after
85
-          top 16px
53
+    & > i
54
+      padding 0 5px 8px 0
86 55
   &__btnnewworkspace
87 56
     margin 50px 0
88 57
     overflow hidden
@@ -105,6 +74,8 @@ leftside()
105 74
           height 100%
106 75
           background-color blue
107 76
           cursor pointer
77
+          &:hover
78
+            background-color darkenBlue
108 79
         &__number
109 80
           leftside()
110 81
           padding 12px
@@ -155,6 +126,9 @@ leftside()
155 126
 
156 127
 @media (min-width: min-sm) and (max-width: max-md)
157 128
 
129
+  .sidebarSticky
130
+    top 69px
131
+
158 132
   .sidebar
159 133
     position fixed
160 134
 
@@ -172,5 +146,8 @@ leftside()
172 146
   .sidebarpagecontainer
173 147
     padding-top 69px
174 148
 
149
+  .sidebarSticky
150
+    top 69px
151
+
175 152
   .sidebar
176 153
     position fixed