anypicker
Version:
AnyPicker is a customizable jQuery Picker Library for Mobile OS. Create custom mobile pickers (Date, Time, Rating etc) for iOS, Android & Windows. Use pre-built pickers like Date Picker, Time Picker, Date Time Picker, etc
847 lines (650 loc) • 17 kB
CSS
/* -----------------------------------------------------------------------------
AnyPicker - Customizable Picker for Mobile OS
Version 2.0.9
Copyright (c)2017 Lajpat Shah
Contributors : https://github.com/nehakadam/AnyPicker/contributors
Repository : https://github.com/nehakadam/AnyPicker
Homepage : https://nehakadam.github.io/AnyPicker
----------------------------------------------------------------------------- */
/* ------------------------- Basic Layout Start ---------------------------------- */
body.noscroll
{
overflow: hidden;
}
.ap-overlay
{
display: none;
z-index: 2000;
min-width: 250px;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
backface-visibility: hidden;
-webkit-transform-style: preserve-3d;
-moz-transform-style: preserve-3d;
transform-style: preserve-3d;
-webkit-perspective: 1000px;
-moz-perspective: 1000px;
perspective: 1000px;
}
.ap-layout-popup
{
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
}
.ap-layout-fixed,
.ap-layout-popover
{
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
}
/*
.ap-layout-relative, .ap-layout-inline
{
height: auto;
}
*/
.ap-layout-relative, .ap-layout-inline
{
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.ap-overlay *
{
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.ap-bg
{
width: 100%;
height: 100%;
font-family: sans-serif;
/*font-family: 'Helvetica Neue', Arial, sans-serif;*/
font-size: 22px;
}
.ap-cont
{
margin: 0 auto;
background: #FFFFFF;
}
.ap-theme-default:not(.ap-layout-inline):not(.ap-layout-relative) .ap-cont
{
-webkit-box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22), 0 25px 55px 0 rgba(0, 0, 0, 0.21);
-moz-box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22), 0 25px 55px 0 rgba(0, 0, 0, 0.21);
box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22), 0 25px 55px 0 rgba(0, 0, 0, 0.21);
}
.ap-layout-popup .ap-cont
{
position: relative;
top: 50%;
max-width: 500px;
width: 95%;
-webkit-transform: translateY(-50%);
-moz-transform: translateY(-50%);
-o-transform: translateY(-50%);
-ms-transform: translateY(-50%);
transform: translateY(-50%);
}
.ap-layout-relative .ap-cont
{
max-width: 500px;
width: 97%;
border: 1px solid #ECF0F1;
}
.ap-layout-inline .ap-cont
{
border: 1px solid #ECF0F1;
}
.ap-layout-fixed .ap-cont
{
width: 100%;
position: fixed;
}
/* ------------------------- Basic Layout End ---------------------------------- */
/* ------------------------- View Sections Start ---------------------------------- */
.ap-header
{
height: 50px;
line-height: 50px;
text-align: left;
font-size: 0.9em;
padding: 0 16px;
}
.ap-dir-rtl .ap-header
{
text-align: right;
}
.ap-theme-default .ap-header
{
height: 60px;
line-height: 60px;
}
.ap-content
{
max-width: 320px;
margin: 0 auto;
}
.ap-content-top
{
height: 50px;
padding: 8px 16px;
color:#555;
text-align:center;
}
.ap-content-switch
{
margin-top: 8px;
margin-bottom: 8px;
text-align: center;
}
.ap-content-switch-tab
{
border: 1px solid #009688;
padding: 5px 16px;
cursor: pointer;
font-size: 0.6em;
color: #009688;
}
.ap-dir-ltr .ap-content-switch-date
{
border-top-left-radius: 2px;
border-bottom-left-radius: 2px;
}
.ap-dir-rtl .ap-content-switch-date
{
border-top-right-radius: 2px;
border-bottom-right-radius: 2px;
margin-left: -1px;
}
.ap-dir-ltr .ap-content-switch-time
{
border-top-right-radius: 2px;
border-bottom-right-radius: 2px;
margin-left: -1px;
}
.ap-dir-rtl .ap-content-switch-time
{
border-top-left-radius: 2px;
border-bottom-left-radius: 2px;
}
.ap-content-switch-selected
{
background: #009688;
color: #FFFFFF;
}
.ap-content-middle
{
min-height: 120px;
padding-top: 20px;
padding-bottom: 20px;
}
.ap-content-bottom
{
height: 50px;
padding: 8px 16px;
color:#555;
text-align:center;
}
.ap-theme-default .ap-content-top,
.ap-theme-default .ap-content-bottom
{
font-size: 0.7em;
}
.ap-footer
{
display: table;
table-layout: fixed;
width: 100%;
height: 50px;
text-align: center;
}
.ap-theme-default .ap-footer
{
padding: 0 16px;
}
.ap-theme-default .ap-footer-top
{
line-height: 55px;
}
.ap-theme-default .ap-footer-bottom
{
line-height: 45px;
}
.ap-header__title
{
color: #000000;
font-size: 1.2em;
}
/* ------------------------- Buttons Start ---------------------------------- */
.ap-theme-default .ap-button
{
cursor: pointer;
letter-spacing: 0;
text-align: center;
font-size: 0.8em;
padding: 8px 12px;
margin: 8px;
color: #009688;
background: rgba(255, 255, 255, 1);
text-transform: uppercase;
}
.ap-theme-default .ap-button-cont
{
float: right;
}
.ap-theme-default.ap-dir-rtl .ap-button-cont
{
float: left;
}
/* ------------------------- Buttons End ---------------------------------- */
/* ------------------------- View Sections End ---------------------------------- */
/* ------------------------- Animations Start ---------------------------------- */
/* ------------------------------------------------------------------------------ */
.ap-show
{
opacity: 0;
animation: ap-anim-show ease 0.5s;
animation-iteration-count: 1;
-webkit-animation: ap-anim-show ease 0.5s;
-webkit-animation-iteration-count: 1;
-moz-animation: ap-anim-show ease 0.5s;
-moz-animation-iteration-count: 1;
-o-animation: ap-anim-show ease 0.5s;
-o-animation-iteration-count: 1;
-ms-animation: ap-anim-show ease 0.5s;
-ms-animation-iteration-count: 1;
-moz-animation-fill-mode: forwards;
-webkit-animation-fill-mode: forwards; /* Chrome, Safari, Opera */
animation-fill-mode: forwards;
}
@keyframes ap-anim-show
{
0% { opacity:0; }
100% { opacity:1; }
}
@-moz-keyframes ap-anim-show
{
0% { opacity:0; }
100% { opacity:1; }
}
@-webkit-keyframes ap-anim-show
{
0% { opacity:0; }
100% { opacity:1; }
}
@-o-keyframes ap-anim-show
{
0% { opacity:0; }
100% { opacity:1; }
}
/* ------------------------------------------------------------------------------ */
.ap-hide
{
animation: ap-anim-hide ease 0.5s;
animation-iteration-count: 1;
-moz-animation-fill-mode: forwards;
-webkit-animation-fill-mode: forwards; /* Chrome, Safari, Opera */
animation-fill-mode: forwards;
-webkit-animation: ap-anim-hide ease 0.5s;
-webkit-animation-iteration-count: 1;
-moz-animation: ap-anim-hide ease 0.5s;
-moz-animation-iteration-count: 1;
-o-animation: ap-anim-hide ease 0.5s;
-o-animation-iteration-count: 1;
-ms-animation: ap-anim-hide ease 0.5s;
-ms-animation-iteration-count: 1;
}
@keyframes ap-anim-hide
{
0% { opacity:1; }
100% { opacity:0; }
}
@-moz-keyframes ap-anim-hide
{
0% { opacity:1; }
100% { opacity:0; }
}
@-webkit-keyframes ap-anim-hide
{
0% { opacity:1; }
100% { opacity:0; }
}
@-o-keyframes ap-anim-hide
{
0% { opacity:1; }
100% { opacity:0; }
}
/* ------------------------------------------------------------------------------ */
.ap-bottom-slide-up
{
opacity: 0;
animation: ap-anim-bottom-slide-up ease 0.5s;
animation-iteration-count: 1;
-webkit-animation: ap-anim-bottom-slide-up ease 0.5s;
-webkit-animation-iteration-count: 1;
-moz-animation: ap-anim-bottom-slide-up ease 0.5s;
-moz-animation-iteration-count: 1;
-o-animation: ap-anim-bottom-slide-up ease 0.5s;
-o-animation-iteration-count: 1;
-ms-animation: ap-anim-bottom-slide-up ease 0.5s;
-ms-animation-iteration-count: 1;
-moz-animation-fill-mode: forwards;
-webkit-animation-fill-mode: forwards; /* Chrome, Safari, Opera */
animation-fill-mode: forwards;
}
@keyframes ap-anim-bottom-slide-up
{
100% { opacity: 1; bottom: 0; }
}
@-moz-keyframes ap-anim-bottom-slide-up
{
100% { opacity: 1; bottom: 0; }
}
@-webkit-keyframes ap-anim-bottom-slide-up
{
100% { opacity: 1; bottom: 0; }
}
@-o-keyframes ap-anim-bottom-slide-up
{
100% { opacity: 1; bottom: 0; }
}
/* ------------------------------------------------------------------------------ */
.ap-bottom-slide-down
{
opacity: 1;
animation: ap-anim-bottom-slide-down ease 0.5s;
animation-iteration-count: 1;
-webkit-animation: ap-anim-bottom-slide-down ease 0.5s;
-webkit-animation-iteration-count: 1;
-moz-animation: ap-anim-bottom-slide-down ease 0.5s;
-moz-animation-iteration-count: 1;
-o-animation: ap-anim-bottom-slide-down ease 0.5s;
-o-animation-iteration-count: 1;
-ms-animation: ap-anim-bottom-slide-down ease 0.5s;
-ms-animation-iteration-count: 1;
-moz-animation-fill-mode: forwards;
-webkit-animation-fill-mode: forwards; /* Chrome, Safari, Opera */
animation-fill-mode: forwards;
}
@keyframes ap-anim-bottom-slide-down
{
100% { opacity: 0; bottom: -1000px; }
}
@-moz-keyframes ap-anim-bottom-slide-down
{
100% { opacity: 0; bottom: -1000px; }
}
@-webkit-keyframes ap-anim-bottom-slide-down
{
100% { opacity: 0; bottom: -1000px; }
}
@-o-keyframes ap-anim-bottom-slide-down
{
100% { opacity: 0; bottom: -1000px; }
}
/* ------------------------------------------------------------------------------ */
.ap-top-slide-down
{
opacity: 0;
animation: ap-anim-top-slide-down ease 0.5s;
animation-iteration-count: 1;
-webkit-animation: ap-anim-top-slide-down ease 0.5s;
-webkit-animation-iteration-count: 1;
-moz-animation: ap-anim-top-slide-down ease 0.5s;
-moz-animation-iteration-count: 1;
-o-animation: ap-anim-top-slide-down ease 0.5s;
-o-animation-iteration-count: 1;
-ms-animation: ap-anim-top-slide-down ease 0.5s;
-ms-animation-iteration-count: 1;
-moz-animation-fill-mode: forwards;
-webkit-animation-fill-mode: forwards; /* Chrome, Safari, Opera */
animation-fill-mode: forwards;
}
@keyframes ap-anim-top-slide-down
{
100% { opacity: 1; top: 0; }
}
@-moz-keyframes ap-anim-top-slide-down
{
100% { opacity: 1; top: 0; }
}
@-webkit-keyframes ap-anim-top-slide-down
{
100% { opacity: 1; top: 0; }
}
@-o-keyframes ap-anim-top-slide-down
{
100% { opacity: 1; top: 0; }
}
/* ------------------------------------------------------------------------------ */
.ap-top-slide-up
{
opacity: 1;
animation: ap-anim-top-slide-up ease 0.5s;
animation-iteration-count: 1;
-webkit-animation: ap-anim-top-slide-up ease 0.5s;
-webkit-animation-iteration-count: 1;
-moz-animation: ap-anim-top-slide-up ease 0.5s;
-moz-animation-iteration-count: 1;
-o-animation: ap-anim-top-slide-up ease 0.5s;
-o-animation-iteration-count: 1;
-ms-animation: ap-anim-top-slide-up ease 0.5s;
-ms-animation-iteration-count: 1;
-moz-animation-fill-mode: forwards;
-webkit-animation-fill-mode: forwards; /* Chrome, Safari, Opera */
animation-fill-mode: forwards;
}
@keyframes ap-anim-top-slide-up
{
100% { opacity: 0; top: -1000px; }
}
@-moz-keyframes ap-anim-top-slide-up
{
100% { opacity: 0; top: -1000px; }
}
@-webkit-keyframes ap-anim-top-slide-up
{
100% { opacity: 0; top: -1000px; }
}
@-o-keyframes ap-anim-top-slide-up
{
100% { opacity: 0; top: -1000px; }
}
/* ------------------------------------------------------------------------------ */
.ap-theme-default .ap-button-active
{
animation: ap-anim-default-button-active ease 0.5s;
animation-iteration-count: 1;
animation-fill-mode:forwards;
-webkit-animation: ap-anim-default-button-active ease 0.5s;
-webkit-animation-iteration-count: 1;
-webkit-animation-fill-mode:forwards;
-moz-animation: ap-anim-default-button-active ease 0.5s;
-moz-animation-iteration-count: 1;
-moz-animation-fill-mode:forwards;
-o-animation: ap-anim-default-button-active ease 0.5s;
-o-animation-iteration-count: 1;
-o-animation-fill-mode:forwards;
-ms-animation: ap-anim-default-button-active ease 0.5s;
-ms-animation-iteration-count: 1;
-ms-animation-fill-mode:forwards;
}
@keyframes ap-anim-default-button-active
{
100% { background: #E0F2F1; }
}
@-moz-keyframes ap-anim-default-button-active
{
100% { background: #E0F2F1; }
}
@-webkit-keyframes ap-anim-default-button-active
{
100% { background: #E0F2F1; }
}
@-o-keyframes ap-anim-default-button-active
{
100% { background: #E0F2F1; }
}
/* ------------------------------------------------------------------------------ */
/* ------------------------- Animations End ---------------------------------- */
/* ------------------------- Picker Component Start ---------------------------------- */
.ap-component-section
{
display: table;
table-layout: fixed;
width: 100%;
background: #FFFFFF;
}
.ap-loading
{
width: 100%;
height: 100%;
z-index: 2;
background: #FFFFFF;
}
.ap-component-section, ap-component-section *
{
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-touch-callout: none;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-ms-touch-select: none;
-ms-touch-action: none;
touch-action: none;
}
.ap-component
{
display: table-cell;
}
.ap-component-label
{
text-align: center;
font-size: 0.7em;
}
.ap-theme-default
{
color: #009688;
}
.ap-component-plus, .ap-component-minus
{
background: #FFFFFF;
color: #BDBDBD;
width: 100%;
height: 40px;
line-height: 40px;
text-align: center;
font-size: 15px;
cursor: pointer;
}
.ap-component-cont
{
position: relative;
/*height: 200px;*/
overflow: hidden;
}
.ap-component-data
{
position: absolute;
left: 0;
top: 0;
width: 100%;
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
backface-visibility: hidden;
-webkit-transform-style: preserve-3d;
-moz-transform-style: preserve-3d;
transform-style: preserve-3d;
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
-webkit-perspective: 1000px;
-moz-perspective: 1000px;
perspective: 1000px;
}
.ap-row
{
height: 40px;
line-height: 40px;
text-align: center;
overflow: hidden;
text-overflow: clip;
white-space:nowrap;
cursor: pointer;
color: #000000;
}
.ap-row-invalid
{
color: #FFCDD2;
}
.ap-row-hidden
{
opacity: 0;
}
.ap-component-selector
{
position: absolute;
left: 0;
top: 50%;
-webkit-transform: translateY(-50%);
-moz-transform: translateY(-50%);
-o-transform: translateY(-50%);
-ms-transform: translateY(-50%);
transform: translateY(-50%);
width: 100%;
height: 40px;
border-top: 1px solid #009688;
border-bottom: 1px solid #009688;
}
.ap-theme-default .ap-component-selector
{
left: 10%;
width: 80%;
}
.ap-component-gradient
{
position: absolute;
top: -1px;
left: 0;
width: 100%;
height: 102%;
cursor: pointer;
/*
http://www.cssmatic.com/gradient-generator#'\-moz\-linear\-gradient\%28top\%2C\%20rgba\%28255\%2C255\%2C255\%2C0\.8\%29\%200\%25\%2C\%20rgba\%28255\%2C255\%2C255\%2C0\.8\%29\%2030\%25\%2C\%20rgba\%28255\%2C255\%2C255\%2C0\%29\%2045\%25\%2C\%20rgba\%28255\%2C255\%2C255\%2C0\%29\%2055\%25\%2C\%20rgba\%28255\%2C255\%2C255\%2C0\.8\%29\%2070\%25\%2C\%20rgba\%28255\%2C255\%2C255\%2C0\.8\%29\%20100\%25\%29\%3B'
*/
background: rgba(255,255,255,0.8);
background: -moz-linear-gradient(top, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.8) 30%, rgba(255,255,255,0) 45%, rgba(255,255,255,0) 55%, rgba(255,255,255,0.8) 70%, rgba(255,255,255,0.8) 100%);
background: -webkit-gradient(left top, left bottom, color-stop(0%, rgba(255,255,255,0.8)), color-stop(30%, rgba(255,255,255,0.8)), color-stop(45%, rgba(255,255,255,0)), color-stop(55%, rgba(255,255,255,0)), color-stop(70%, rgba(255,255,255,0.8)), color-stop(100%, rgba(255,255,255,0.8)));
background: -webkit-linear-gradient(top, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.8) 30%, rgba(255,255,255,0) 45%, rgba(255,255,255,0) 55%, rgba(255,255,255,0.8) 70%, rgba(255,255,255,0.8) 100%);
background: -o-linear-gradient(top, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.8) 30%, rgba(255,255,255,0) 45%, rgba(255,255,255,0) 55%, rgba(255,255,255,0.8) 70%, rgba(255,255,255,0.8) 100%);
background: -ms-linear-gradient(top, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.8) 30%, rgba(255,255,255,0) 45%, rgba(255,255,255,0) 55%, rgba(255,255,255,0.8) 70%, rgba(255,255,255,0.8) 100%);
background: linear-gradient(to bottom, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.8) 30%, rgba(255,255,255,0) 45%, rgba(255,255,255,0) 55%, rgba(255,255,255,0.8) 70%, rgba(255,255,255,0.8) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#ffffff', GradientType=0 );
}
/* ------------------------- Picker Component End ---------------------------------- */