history-navigation-vue
Version:
Native-like Navigation for Web apps.
184 lines (165 loc) • 3.76 kB
CSS
/*!
* history-navigation-vue v1.5.0
* (c) 2021 hezedu
* @license MIT
*/
.h-nav-ctrler{
width: 100%;
height: 100%;
overflow: hidden;
position: relative;
}
.h-nav-page, .h-nav-tab-page {
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
}
.h-nav-page-main {
background-color: #fff;
position: relative;
-webkit-overflow-scrolling: touch;
overflow: auto;
width: 100%;
height: 100%;
}
.h-nav-tabs-ctrler{
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
overflow: hidden;
}
.h-nav-page-handle,
.h-nav-tab-page-handle{
width: 0;
height: 0;
border: 0;
margin: 0;
padding: 0;
box-shadow: none;
outline: none;
position: static;
}
.h-nav-page-enter-active,
.h-nav-page-leave-active,
.h-nav-tab-page-enter-active,
.h-nav-tab-page-leave-active{
transition: inherit;
animation: inherit;
}
.h-nav-tab-pages-wrap {
transition: inherit;
animation: inherit;
position: static;
transition-property: none;
animation-name: none;
}
.h-nav-tab-page-handle{
transition: inherit;
animation: inherit;
}
.h-nav-tab-behavior-_inherit{
transition: inherit;
animation: inherit;
}
.h-nav-modal {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
color: #fff;
box-sizing: border-box;
/* background-color: rgba(0, 0, 0, .5); */
}
/* .h-nav-tab-page .h-nav-modal {
z-index: 2000;
} */
.h-nav-page-has-modal {
overflow: hidden;
}
.h-nav-behavior-push > .h-nav-transition,
.h-nav-behavior-back > .h-nav-transition,
.h-nav-behavior-replace > .h-nav-transition{
transition: all .3s ease;
}
.h-nav-behavior-push > .h-nav-transition > .h-nav-page-enter,
.h-nav-behavior-back > .h-nav-transition > .h-nav-page-leave-to {
transform: translateX(100%);
}
.h-nav-behavior-replace > .h-nav-transition > .h-nav-page-enter {
transform: translateY(100%);
}
/* ---------------- behavior push/back start ---------------- */
/* .h-nav-behavior-push > .h-nav-transition,
.h-nav-behavior-back > .h-nav-transition,
.h-nav-behavior-replace > .h-nav-transition{
transition: all .3s ease;
}
.h-nav-behavior-push > .h-nav-transition > .h-nav-page-enter,
.h-nav-behavior-back > .h-nav-transition > .h-nav-page-leave-to,
.h-nav-behavior-replace > .h-nav-transition > .h-nav-page-enter {
transform: translateX(100%);
} */
/* ---------------- behavior push/back end ---------------- */
.h-nav-tabbar{
box-sizing: border-box;
border-top: 1px solid #c7c7c7;
display: -ms-flexbox;
display: flex;
-ms-flex-pack: distribute;
justify-content: space-around;
background-color: #eee;
}
.h-nav-tabbar {
height: 48px;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
z-index: 0;
}
.h-nav-tab-page {
height: calc(100% - 48px);
}
.h-nav-tab-page > .h-nav-modal {
height: calc(100% + 48px);
}
.h-nav-tab{
-ms-flex-positive: 1;
flex-grow: 1;
display: -ms-flexbox;
display: flex;
-ms-flex-align: center;
align-items: center;
-ms-flex-pack: center;
justify-content: center;
text-decoration: none;
color: #333;
-ms-flex-direction: column;
flex-direction: column;
}
.h-nav-tab.h-nav-active{
color: #3eaf7c;
}
.h-nav-tab-icon{
font-size: 26px;
width: 26px;
height: 26px;
line-height: 26px;
text-align: center;
background-repeat: no-repeat;
background-size: contain;
background-position: center center;
margin-bottom: 4px;
}
.h-nav-tab-text{
font-size: 16px;
line-height: 1;
}
.h-nav-tab-icon + .h-nav-tab-text{
font-size: 12px;
}