Commit 31620a78 authored by hbcui1984's avatar hbcui1984

更新带登录和设置的mui项目模板

parent 6abfc4cc
...@@ -358,7 +358,7 @@ ...@@ -358,7 +358,7 @@
</li> </li>
<li class="mui-table-view-cell"> <li class="mui-table-view-cell">
<a class="mui-navigate-right" open-type="common" href="examples/setting.html"> <a class="mui-navigate-right" open-type="common" href="examples/setting.html">
setting(设置) setting(设置)- div窗体切换示例
</a> </a>
</li> </li>
</ul> </ul>
......
/*!
* =====================================================
* Mui v1.5.0 (https://github.com/dcloudio/mui)
* =====================================================
*/
/*! normalize.css v3.0.1 | MIT License | git.io/normalize */
html {
font-family: sans-serif;
-webkit-text-size-adjust: 100%;
}
body {
margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
display: block;
}
audio,
canvas,
progress,
video {
display: inline-block;
vertical-align: baseline;
}
audio:not([controls]) {
display: none;
height: 0;
}
[hidden],
template {
display: none;
}
a {
background: transparent;
}
a:active,
a:hover {
outline: 0;
}
abbr[title] {
border-bottom: 1px dotted;
}
b,
strong {
font-weight: bold;
}
dfn {
font-style: italic;
}
h1 {
margin: .67em 0;
font-size: 2em;
}
mark {
color: #000;
background: #ff0;
}
small {
font-size: 80%;
}
sub,
sup {
position: relative;
font-size: 75%;
line-height: 0;
vertical-align: baseline;
}
sup {
top: -.5em;
}
sub {
bottom: -.25em;
}
img {
border: 0;
}
svg:not(:root) {
overflow: hidden;
}
figure {
margin: 1em 40px;
}
hr {
height: 0;
box-sizing: content-box;
}
pre {
overflow: auto;
}
code,
kbd,
pre,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
button,
input,
optgroup,
select,
textarea {
margin: 0;
font: inherit;
color: inherit;
}
button {
overflow: visible;
}
button,
select {
text-transform: none;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button;
cursor: pointer;
}
button[disabled],
html input[disabled] {
cursor: default;
}
input {
line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box;
padding: 0;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
height: auto;
}
input[type="search"] {
-webkit-box-sizing: content-box;
box-sizing: content-box;
-webkit-appearance: textfield;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
fieldset {
padding: .35em .625em .75em;
margin: 0 2px;
border: 1px solid #c0c0c0;
}
legend {
padding: 0;
border: 0;
}
textarea {
overflow: auto;
}
optgroup {
font-weight: bold;
}
table {
border-spacing: 0;
border-collapse: collapse;
}
td,
th {
padding: 0;
}
* {
-webkit-box-sizing: border-box;
box-sizing: border-box;
-webkit-user-select: none;
outline: none;
-webkit-tap-highlight-color: transparent;
-webkit-tap-highlight-color: transparent;
}
body {
-webkit-overflow-scrolling: touch;
font-family: "Helvetica Neue", Helvetica, sans-serif;
font-size: 17px;
line-height: 21px;
color: #000;
background-color: #fff;
}
a {
color: #007aff;
text-decoration: none;
}
a:active {
color: #0062cc;
}
.mui-content {
-webkit-overflow-scrolling: touch;
background-color: #efeff4;
}
.mui-bar-nav ~ .mui-content {
padding-top: 44px;
}
.mui-bar-nav ~ .mui-content.mui-scroll-wrapper .mui-scrollbar-vertical {
top: 44px;
}
.mui-bar-header-secondary ~ .mui-content {
padding-top: 88px;
}
.mui-bar-header-secondary ~ .mui-content.mui-scroll-wrapper .mui-scrollbar-vertical {
top: 88px;
}
.mui-bar-footer ~ .mui-content {
padding-bottom: 44px;
}
.mui-bar-footer ~ .mui-content.mui-scroll-wrapper .mui-scrollbar-vertical {
bottom: 44px;
}
.mui-bar-footer-secondary ~ .mui-content {
padding-bottom: 88px;
}
.mui-bar-footer-secondary ~ .mui-content.mui-scroll-wrapper .mui-scrollbar-vertical {
bottom: 88px;
}
.mui-bar-tab ~ .mui-content {
padding-bottom: 50px;
}
.mui-bar-tab ~ .mui-content.mui-scroll-wrapper .mui-scrollbar-vertical {
bottom: 50px;
}
.mui-bar-footer-secondary-tab ~ .mui-content {
padding-bottom: 94px;
}
.mui-bar-footer-secondary-tab ~ .mui-content.mui-scroll-wrapper .mui-scrollbar-vertical {
bottom: 94px;
}
.mui-content-padded {
margin: 10px;
}
.mui-inline {
display: inline-block;
vertical-align: top;
}
.mui-block {
display: block !important;
}
.mui-visibility {
visibility: visible !important;
}
.mui-hidden {
display: none !important;
}
.mui-ellipsis {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.mui-ellipsis-2 {
display: -webkit-box;
overflow: hidden;
text-overflow: ellipsis;
word-wrap: break-word;
white-space: normal !important;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.mui-table {
display: table;
width: 100%;
table-layout: fixed;
}
.mui-table-cell {
position: relative;
display: table-cell;
}
.mui-text-left {
text-align: left !important;
}
.mui-text-center {
text-align: center !important;
}
.mui-text-justify {
text-align: justify !important;
}
.mui-text-right {
text-align: right !important;
}
.mui-pull-left {
float: left;
}
.mui-pull-right {
float: right;
}
.mui-list-unstyled {
padding-left: 0;
list-style: none;
}
.mui-list-inline {
padding-left: 0;
margin-left: -5px;
list-style: none;
}
.mui-list-inline > li {
display: inline-block;
padding-right: 5px;
padding-left: 5px;
}
.mui-clearfix:before, .mui-clearfix:after {
display: table;
content: " ";
}
.mui-clearfix:after {
clear: both;
}
.mui-bg-primary {
background-color: #007aff;
}
.mui-bg-positive {
background-color: #4cd964;
}
.mui-bg-negative {
background-color: #dd524d;
}
.mui-error {
padding: 10px;
margin: 88px 35px;
background-color: #bbb;
border-radius: 6px;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 5px;
margin-bottom: 5px;
line-height: 1;
}
h1, .mui-h1 {
font-size: 36px;
}
h2, .mui-h2 {
font-size: 30px;
}
h3, .mui-h3 {
font-size: 24px;
}
h4, .mui-h4 {
font-size: 18px;
}
h5, .mui-h5 {
font-size: 14px;
font-weight: normal;
color: #8f8f94;
}
h6, .mui-h6 {
font-size: 12px;
font-weight: normal;
color: #8f8f94;
}
p {
margin-top: 0;
margin-bottom: 10px;
font-size: 14px;
color: #8f8f94;
}
.mui-col-xs-12 {
width: 100%;
}
.mui-col-xs-11 {
width: 91.66666667%;
}
.mui-col-xs-10 {
width: 83.33333333%;
}
.mui-col-xs-9 {
width: 75%;
}
.mui-col-xs-8 {
width: 66.66666667%;
}
.mui-col-xs-7 {
width: 58.33333333%;
}
.mui-col-xs-6 {
width: 50%;
}
.mui-col-xs-5 {
width: 41.66666667%;
}
.mui-col-xs-4 {
width: 33.33333333%;
}
.mui-col-xs-3 {
width: 25%;
}
.mui-col-xs-2 {
width: 16.66666667%;
}
.mui-col-xs-1 {
width: 8.33333333%;
}
@media (min-width: 400px) {
.mui-col-sm-12 {
width: 100%;
}
.mui-col-sm-11 {
width: 91.66666667%;
}
.mui-col-sm-10 {
width: 83.33333333%;
}
.mui-col-sm-9 {
width: 75%;
}
.mui-col-sm-8 {
width: 66.66666667%;
}
.mui-col-sm-7 {
width: 58.33333333%;
}
.mui-col-sm-6 {
width: 50%;
}
.mui-col-sm-5 {
width: 41.66666667%;
}
.mui-col-sm-4 {
width: 33.33333333%;
}
.mui-col-sm-3 {
width: 25%;
}
.mui-col-sm-2 {
width: 16.66666667%;
}
.mui-col-sm-1 {
width: 8.33333333%;
}
}
.mui-scroll-wrapper {
position: absolute;
top: 0;
bottom: 0;
left: 0;
z-index: 1;
width: 100%;
overflow: hidden;
-webkit-backface-visibility: hidden;
}
.mui-scroll {
position: absolute;
z-index: 1;
width: 100%;
-webkit-transform: translateZ(0);
transform: translateZ(0);
-webkit-backface-visibility: hidden;
}
.mui-scrollbar {
position: absolute;
z-index: 9998;
overflow: hidden;
pointer-events: none;
opacity: 0;
-webkit-transition: 500ms;
transition: 500ms;
transform: translateZ(0px);
}
.mui-scrollbar-vertical {
top: 0;
right: 1px;
bottom: 2px;
width: 4px;
}
.mui-scrollbar-vertical .mui-scrollbar-indicator {
width: 100%;
}
.mui-scrollbar-horizontal {
right: 2px;
bottom: 0;
left: 2px;
height: 4px;
}
.mui-scrollbar-horizontal .mui-scrollbar-indicator {
height: 100%;
}
.mui-scrollbar-indicator {
position: absolute;
display: block;
box-sizing: border-box;
background: rgba(0, 0, 0, .39804);
border: 1px solid rgba(255, 255, 255, .80196);
border-radius: 2px;
-webkit-transition: .01s cubic-bezier(.1, .57, .1, 1);
transition: .01s cubic-bezier(.1, .57, .1, 1);
transform: translate(0px, 0px) translateZ(0px);
}
.mui-plus-pullrefresh .mui-fullscreen .mui-scroll-wrapper .mui-scroll-wrapper, .mui-plus-pullrefresh .mui-fullscreen .mui-slider-group .mui-scroll-wrapper {
position: absolute;
top: 0;
bottom: 0;
left: 0;
width: 100%;
overflow: hidden;
}
.mui-plus-pullrefresh .mui-fullscreen .mui-scroll-wrapper .mui-scroll, .mui-plus-pullrefresh .mui-fullscreen .mui-slider-group .mui-scroll {
position: absolute;
width: 100%;
}
.mui-plus-pullrefresh .mui-scroll-wrapper, .mui-plus-pullrefresh .mui-slider-group {
position: static;
top: auto;
bottom: auto;
left: auto;
width: auto;
overflow: auto;
}
.mui-plus-pullrefresh .mui-slider-group {
overflow: visible;
}
.mui-plus-pullrefresh .mui-scroll {
position: static;
width: auto;
}
.mui-off-canvas-wrap .mui-bar {
position: absolute !important;
}
.mui-off-canvas-wrap {
position: relative;
z-index: 1;
width: 100%;
height: 100%;
overflow: hidden;
}
.mui-off-canvas-wrap .mui-inner-wrap {
position: relative;
z-index: 1;
width: 100%;
height: 100%;
}
.mui-off-canvas-wrap .mui-inner-wrap.mui-transitioning {
-webkit-transition: -webkit-transform 200ms ease;
transition: transform 200ms ease;
}
.mui-off-canvas-wrap .mui-inner-wrap .mui-off-canvas-left {
-webkit-transform: translate3d(-100%, 0, 0);
transform: translate3d(-100%, 0, 0);
}
.mui-off-canvas-wrap .mui-inner-wrap .mui-off-canvas-right {
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0);
}
.mui-off-canvas-wrap.mui-active {
height: 100%;
overflow: hidden;
}
.mui-off-canvas-wrap.mui-active .mui-off-canvas-backdrop {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 998;
display: block;
background: rgba(0, 0, 0, .4);
box-shadow: -4px 0 4px rgba(0, 0, 0, .5), 4px 0 4px rgba(0, 0, 0, .5);
transition: background 200ms ease;
-webkit-backface-visibility: hidden;
-webkit-tap-highlight-color: transparent;
}
.mui-off-canvas-wrap.mui-slide-in .mui-off-canvas-right {
z-index: 10000 !important;
-webkit-transform: translate3d(100%, 0px, 0px);
}
.mui-off-canvas-wrap.mui-slide-in .mui-off-canvas-left {
z-index: 10000 !important;
-webkit-transform: translate3d(-100%, 0px, 0px);
}
.mui-off-canvas-left, .mui-off-canvas-right {
position: absolute;
top: 0;
bottom: 0;
z-index: -1;
width: 70%;
min-height: 100%;
box-sizing: content-box;
-webkit-overflow-scrolling: touch;
visibility: hidden;
background: #333;
-webkit-backface-visibility: hidden;
}
.mui-off-canvas-left.mui-transitioning, .mui-off-canvas-right.mui-transitioning {
-webkit-transition: -webkit-transform 200ms ease;
transition: transform 200ms ease;
}
.mui-off-canvas-left {
left: 0;
}
.mui-off-canvas-right {
right: 0;
}
.mui-loading .mui-spinner {
display: block;
margin: 0 auto;
}
.mui-spinner {
display: inline-block;
width: 24px;
height: 24px;
-webkit-transform-origin: 50%;
transform-origin: 50%;
-webkit-animation: spinner-spin 1s step-end infinite;
animation: spinner-spin 1s step-end infinite;
}
.mui-spinner:after {
display: block;
width: 100%;
height: 100%;
content: "";
background-image: url("data:image/svg+xml;charset=utf-8,<svg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><defs><line id='l' x1='60' x2='60' y1='7' y2='27' stroke='%236c6c6c' stroke-width='11' stroke-linecap='round'/></defs><g><use xlink:href='%23l' opacity='.27'/><use xlink:href='%23l' opacity='.27' transform='rotate(30 60,60)'/><use xlink:href='%23l' opacity='.27' transform='rotate(60 60,60)'/><use xlink:href='%23l' opacity='.27' transform='rotate(90 60,60)'/><use xlink:href='%23l' opacity='.27' transform='rotate(120 60,60)'/><use xlink:href='%23l' opacity='.27' transform='rotate(150 60,60)'/><use xlink:href='%23l' opacity='.37' transform='rotate(180 60,60)'/><use xlink:href='%23l' opacity='.46' transform='rotate(210 60,60)'/><use xlink:href='%23l' opacity='.56' transform='rotate(240 60,60)'/><use xlink:href='%23l' opacity='.66' transform='rotate(270 60,60)'/><use xlink:href='%23l' opacity='.75' transform='rotate(300 60,60)'/><use xlink:href='%23l' opacity='.85' transform='rotate(330 60,60)'/></g></svg>");
background-repeat: no-repeat;
background-position: 50%;
background-size: 100%;
}
.mui-spinner-white:after {
background-image: url("data:image/svg+xml;charset=utf-8,<svg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><defs><line id='l' x1='60' x2='60' y1='7' y2='27' stroke='%23fff' stroke-width='11' stroke-linecap='round'/></defs><g><use xlink:href='%23l' opacity='.27'/><use xlink:href='%23l' opacity='.27' transform='rotate(30 60,60)'/><use xlink:href='%23l' opacity='.27' transform='rotate(60 60,60)'/><use xlink:href='%23l' opacity='.27' transform='rotate(90 60,60)'/><use xlink:href='%23l' opacity='.27' transform='rotate(120 60,60)'/><use xlink:href='%23l' opacity='.27' transform='rotate(150 60,60)'/><use xlink:href='%23l' opacity='.37' transform='rotate(180 60,60)'/><use xlink:href='%23l' opacity='.46' transform='rotate(210 60,60)'/><use xlink:href='%23l' opacity='.56' transform='rotate(240 60,60)'/><use xlink:href='%23l' opacity='.66' transform='rotate(270 60,60)'/><use xlink:href='%23l' opacity='.75' transform='rotate(300 60,60)'/><use xlink:href='%23l' opacity='.85' transform='rotate(330 60,60)'/></g></svg>");
}
@-webkit-keyframes spinner-spin {
0% {
-webkit-transform: rotate(0deg);
}
8.33333333% {
-webkit-transform: rotate(30deg);
}
16.66666667% {
-webkit-transform: rotate(60deg);
}
25% {
-webkit-transform: rotate(90deg);
}
33.33333333% {
-webkit-transform: rotate(120deg);
}
41.66666667% {
-webkit-transform: rotate(150deg);
}
50% {
-webkit-transform: rotate(180deg);
}
58.33333333% {
-webkit-transform: rotate(210deg);
}
66.66666667% {
-webkit-transform: rotate(240deg);
}
75% {
-webkit-transform: rotate(270deg);
}
83.33333333% {
-webkit-transform: rotate(300deg);
}
91.66666667% {
-webkit-transform: rotate(330deg);
}
100% {
-webkit-transform: rotate(360deg);
}
}
@keyframes spinner-spin {
0% {
transform: rotate(0deg);
}
8.33333333% {
transform: rotate(30deg);
}
16.66666667% {
transform: rotate(60deg);
}
25% {
transform: rotate(90deg);
}
33.33333333% {
transform: rotate(120deg);
}
41.66666667% {
transform: rotate(150deg);
}
50% {
transform: rotate(180deg);
}
58.33333333% {
transform: rotate(210deg);
}
66.66666667% {
transform: rotate(240deg);
}
75% {
transform: rotate(270deg);
}
83.33333333% {
transform: rotate(300deg);
}
91.66666667% {
transform: rotate(330deg);
}
100% {
transform: rotate(360deg);
}
}
input[type="button"],
input[type="submit"],
input[type="reset"],
button,
.mui-btn {
position: relative;
display: inline-block;
padding: 6px 12px;
margin-bottom: 0;
font-size: 14px;
font-weight: 400;
line-height: 1.42;
color: #333;
text-align: center;
white-space: nowrap;
vertical-align: top;
cursor: pointer;
background-color: #fff;
background-clip: padding-box;
border: 1px solid #ccc;
border-radius: 3px;
border-top-left-radius: 3px;
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
-webkit-transition: all;
transition: all;
-webkit-transition-timing-function: linear;
transition-timing-function: linear;
-webkit-transition-duration: .2s;
transition-duration: .2s;
}
input[type="button"]:enabled:active, input[type="button"].mui-active:enabled,
input[type="submit"]:enabled:active,
input[type="submit"].mui-active:enabled,
input[type="reset"]:enabled:active,
input[type="reset"].mui-active:enabled,
button:enabled:active,
button.mui-active:enabled,
.mui-btn:enabled:active,
.mui-btn.mui-active:enabled {
color: #fff;
background-color: #929292;
}
input[type="button"]:disabled, input[type="button"].mui-disabled,
input[type="submit"]:disabled,
input[type="submit"].mui-disabled,
input[type="reset"]:disabled,
input[type="reset"].mui-disabled,
button:disabled,
button.mui-disabled,
.mui-btn:disabled,
.mui-btn.mui-disabled {
opacity: .6;
}
input[type="submit"],
.mui-btn-primary, .mui-btn-blue {
color: #fff;
background-color: #007aff;
border: 1px solid #007aff;
}
input[type="submit"]:enabled:active, input[type="submit"].mui-active:enabled,
.mui-btn-primary:enabled:active,
.mui-btn-primary.mui-active:enabled, .mui-btn-blue:enabled:active, .mui-btn-blue.mui-active:enabled {
color: #fff;
background-color: #0062cc;
border: 1px solid #0062cc;
}
.mui-btn-positive, .mui-btn-success, .mui-btn-green {
color: #fff;
background-color: #4cd964;
border: 1px solid #4cd964;
}
.mui-btn-positive:enabled:active, .mui-btn-positive.mui-active:enabled, .mui-btn-success:enabled:active, .mui-btn-success.mui-active:enabled, .mui-btn-green:enabled:active, .mui-btn-green.mui-active:enabled {
color: #fff;
background-color: #2ac845;
border: 1px solid #2ac845;
}
.mui-btn-warning, .mui-btn-yellow {
color: #fff;
background-color: #f0ad4e;
border: 1px solid #f0ad4e;
}
.mui-btn-warning:enabled:active, .mui-btn-warning.mui-active:enabled, .mui-btn-yellow:enabled:active, .mui-btn-yellow.mui-active:enabled {
color: #fff;
background-color: #ec971f;
border: 1px solid #ec971f;
}
.mui-btn-negative, .mui-btn-danger, .mui-btn-red {
color: #fff;
background-color: #dd524d;
border: 1px solid #dd524d;
}
.mui-btn-negative:enabled:active, .mui-btn-negative.mui-active:enabled, .mui-btn-danger:enabled:active, .mui-btn-danger.mui-active:enabled, .mui-btn-red:enabled:active, .mui-btn-red.mui-active:enabled {
color: #fff;
background-color: #cf2d28;
border: 1px solid #cf2d28;
}
.mui-btn-royal, .mui-btn-purple {
color: #fff;
background-color: #8a6de9;
border: 1px solid #8a6de9;
}
.mui-btn-royal:enabled:active, .mui-btn-royal.mui-active:enabled, .mui-btn-purple:enabled:active, .mui-btn-purple.mui-active:enabled {
color: #fff;
background-color: #6641e2;
border: 1px solid #6641e2;
}
.mui-btn-grey {
color: #fff;
background-color: #c7c7cc;
border: 1px solid #c7c7cc;
}
.mui-btn-grey:enabled:active, .mui-btn-grey.mui-active:enabled {
color: #fff;
background-color: #acacb4;
border: 1px solid #acacb4;
}
.mui-btn-outlined {
background-color: transparent;
}
.mui-btn-outlined.mui-btn-primary, .mui-btn-outlined.mui-btn-blue {
color: #007aff;
}
.mui-btn-outlined.mui-btn-positive, .mui-btn-outlined.mui-btn-success, .mui-btn-outlined.mui-btn-green {
color: #4cd964;
}
.mui-btn-outlined.mui-btn-warning, .mui-btn-outlined.mui-btn-yellow {
color: #f0ad4e;
}
.mui-btn-outlined.mui-btn-negative, .mui-btn-outlined.mui-btn-danger, .mui-btn-outlined.mui-btn-red {
color: #dd524d;
}
.mui-btn-outlined.mui-btn-royal, .mui-btn-outlined.mui-btn-purple {
color: #8a6de9;
}
.mui-btn-outlined.mui-btn-primary:enabled:active, .mui-btn-outlined.mui-btn-blue:enabled:active, .mui-btn-outlined.mui-btn-positive:enabled:active, .mui-btn-outlined.mui-btn-success:enabled:active, .mui-btn-outlined.mui-btn-green:enabled:active, .mui-btn-outlined.mui-btn-warning:enabled:active, .mui-btn-outlined.mui-btn-yellow:enabled:active, .mui-btn-outlined.mui-btn-negative:enabled:active, .mui-btn-outlined.mui-btn-danger:enabled:active, .mui-btn-outlined.mui-btn-red:enabled:active, .mui-btn-outlined.mui-btn-royal:enabled:active, .mui-btn-outlined.mui-btn-purple:enabled:active {
color: #fff;
}
.mui-btn-link {
padding-top: 6px;
padding-bottom: 6px;
color: #007aff;
background-color: transparent;
border: 0;
}
.mui-btn-link:enabled:active, .mui-btn-link.mui-active:enabled {
color: #0062cc;
background-color: transparent;
}
.mui-btn-block {
display: block;
width: 100%;
padding: 15px 0;
margin-bottom: 10px;
font-size: 18px;
}
.mui-btn .mui-badge {
margin: -2px -4px -2px 4px;
font-size: 14px;
background-color: rgba(0, 0, 0, .15);
}
.mui-btn .mui-badge-inverted,
.mui-btn:enabled:active .mui-badge-inverted {
background-color: transparent;
}
.mui-btn-primary:enabled:active .mui-badge-inverted,
.mui-btn-positive:enabled:active .mui-badge-inverted,
.mui-btn-negative:enabled:active .mui-badge-inverted {
color: #fff;
}
.mui-btn-block .mui-badge {
position: absolute;
right: 0;
margin-right: 10px;
}
.mui-btn .mui-icon {
font-size: inherit;
}
.mui-btn.mui-icon {
font-size: 14px;
line-height: 1.42;
}
.mui-btn.mui-fab {
width: 56px;
height: 56px;
padding: 16px;
border-radius: 50%;
outline: none;
}
.mui-btn.mui-fab.mui-btn-mini {
width: 40px;
height: 40px;
padding: 8px;
}
.mui-btn.mui-fab .mui-icon {
width: 24px;
height: 24px;
font-size: 24px;
line-height: 24px;
}
.mui-bar {
position: fixed;
right: 0;
left: 0;
z-index: 10;
height: 44px;
padding-right: 10px;
padding-left: 10px;
background-color: rgba(247, 247, 247, .98);
border-bottom: 0;
-webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .85);
box-shadow: 0 0 1px rgba(0, 0, 0, .85);
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
.mui-bar .mui-title {
right: 40px;
left: 40px;
width: auto;
margin: 0;
overflow: hidden;
text-overflow: ellipsis;
}
.mui-bar .mui-backdrop {
background: none;
}
.mui-bar-header-secondary {
top: 44px;
}
.mui-bar-footer {
bottom: 0;
}
.mui-bar-footer-secondary {
bottom: 44px;
}
.mui-bar-footer-secondary-tab {
bottom: 50px;
}
.mui-bar-footer,
.mui-bar-footer-secondary,
.mui-bar-footer-secondary-tab {
border-top: 0;
}
.mui-bar-nav {
top: 0;
-webkit-box-shadow: 0 1px 6px #ccc;
box-shadow: 0 1px 6px #ccc;
}
.mui-bar-nav ~ .mui-content .mui-anchor {
display: block;
height: 45px;
margin-top: -45px;
visibility: hidden;
}
.mui-bar-nav.mui-bar .mui-icon {
padding-right: 10px;
padding-left: 10px;
margin-right: -10px;
margin-left: -10px;
}
.mui-title {
position: absolute;
display: block;
width: 100%;
padding: 0;
margin: 0 -10px;
font-size: 17px;
font-weight: 500;
line-height: 44px;
color: #000;
text-align: center;
white-space: nowrap;
}
.mui-title a {
color: inherit;
}
.mui-bar-tab {
bottom: 0;
display: table;
width: 100%;
height: 50px;
padding: 0;
table-layout: fixed;
border-top: 0;
border-bottom: 0;
-webkit-touch-callout: none;
}
.mui-bar-tab .mui-tab-item {
display: table-cell;
width: 1%;
height: 50px;
overflow: hidden;
color: #929292;
text-align: center;
text-overflow: ellipsis;
white-space: nowrap;
vertical-align: middle;
}
.mui-bar-tab .mui-tab-item.mui-active {
color: #007aff;
}
.mui-bar-tab .mui-tab-item .mui-icon {
top: 3px;
width: 24px;
height: 24px;
padding-top: 0;
padding-bottom: 0;
}
.mui-bar-tab .mui-tab-item .mui-icon ~ .mui-tab-label {
display: block;
overflow: hidden;
font-size: 11px;
text-overflow: ellipsis;
}
.mui-bar-tab .mui-tab-item .mui-icon:active {
background: none;
}
.mui-focusin > .mui-bar {
position: absolute;
}
.mui-bar .mui-btn {
position: relative;
top: 7px;
z-index: 20;
padding: 6px 12px 7px;
margin-top: 0;
font-weight: 400;
}
.mui-bar .mui-btn.mui-pull-right {
margin-left: 10px;
}
.mui-bar .mui-btn.mui-pull-left {
margin-right: 10px;
}
.mui-bar .mui-btn-link {
top: 0;
padding: 0;
font-size: 16px;
line-height: 44px;
color: #007aff;
border: 0;
}
.mui-bar .mui-btn-link:active, .mui-bar .mui-btn-link.mui-active {
color: #0062cc;
}
.mui-bar .mui-btn-block {
top: 6px;
padding: 5px 0;
margin-bottom: 0;
font-size: 16px;
}
.mui-bar .mui-btn-nav.mui-pull-left {
margin-left: -5px;
}
.mui-bar .mui-btn-nav.mui-pull-left .mui-icon-left-nav {
margin-right: -3px;
}
.mui-bar .mui-btn-nav.mui-pull-right {
margin-right: -5px;
}
.mui-bar .mui-btn-nav.mui-pull-right .mui-icon-right-nav {
margin-left: -3px;
}
.mui-bar .mui-btn-nav:active {
opacity: .3;
}
.mui-bar .mui-icon {
position: relative;
z-index: 20;
padding-top: 10px;
padding-bottom: 10px;
font-size: 24px;
}
.mui-bar .mui-icon:active {
opacity: .3;
}
.mui-bar .mui-btn .mui-icon {
top: 1px;
padding: 0;
margin: 0;
}
.mui-bar .mui-title .mui-icon {
padding: 0;
margin: 0;
}
.mui-bar .mui-title .mui-icon.mui-icon-caret {
top: 4px;
margin-left: -5px;
}
.mui-bar input[type="search"] {
height: 29px;
margin: 6px 0;
}
.mui-bar .mui-input-row .mui-btn {
padding: 12px 10px;
}
.mui-bar .mui-search:before {
margin-top: -10px;
}
.mui-bar .mui-input-row .mui-input-clear ~ .mui-icon-clear, .mui-bar .mui-input-row .mui-input-speech ~ .mui-icon-speech {
top: 0;
right: 12px;
}
.mui-bar.mui-bar-header-secondary .mui-input-row .mui-input-clear ~ .mui-icon-clear, .mui-bar.mui-bar-header-secondary .mui-input-row .mui-input-speech ~ .mui-icon-speech {
top: 0;
right: 0;
}
.mui-bar .mui-segmented-control {
top: 7px;
width: auto;
margin: 0 auto;
}
.mui-badge {
display: inline-block;
padding: 3px 6px;
font-size: 12px;
line-height: 1;
color: #333;
background-color: rgba(0, 0, 0, .15);
border-radius: 100px;
}
.mui-badge.mui-badge-inverted {
padding: 0 5px 0 0;
color: #929292;
background-color: transparent;
}
.mui-badge-primary, .mui-badge-blue {
color: #fff;
background-color: #007aff;
}
.mui-badge-primary.mui-badge-inverted, .mui-badge-blue.mui-badge-inverted {
color: #007aff;
background-color: transparent;
}
.mui-badge-success, .mui-badge-green {
color: #fff;
background-color: #4cd964;
}
.mui-badge-success.mui-badge-inverted, .mui-badge-green.mui-badge-inverted {
color: #4cd964;
background-color: transparent;
}
.mui-badge-warning, .mui-badge-yellow {
color: #fff;
background-color: #f0ad4e;
}
.mui-badge-warning.mui-badge-inverted, .mui-badge-yellow.mui-badge-inverted {
color: #f0ad4e;
background-color: transparent;
}
.mui-badge-danger, .mui-badge-red {
color: #fff;
background-color: #dd524d;
}
.mui-badge-danger.mui-badge-inverted, .mui-badge-red.mui-badge-inverted {
color: #dd524d;
background-color: transparent;
}
.mui-badge-royal, .mui-badge-purple {
color: #fff;
background-color: #8a6de9;
}
.mui-badge-royal.mui-badge-inverted, .mui-badge-purple.mui-badge-inverted {
color: #8a6de9;
background-color: transparent;
}
.mui-icon .mui-badge {
position: absolute;
top: -2px;
left: 100%;
padding: 1px 5px;
margin-left: -10px;
font-size: 10px;
line-height: 1.4;
color: white;
background: red;
}
.mui-card {
margin: 0 15px;
overflow: hidden;
background-color: white;
background-clip: padding-box;
border: 1px solid #ddd;
border-radius: 6px;
}
.mui-content > .mui-card:first-child {
margin-top: 15px;
}
.mui-card .mui-input-group:before, .mui-card .mui-input-group:after {
height: 0;
}
.mui-card .mui-input-group .mui-input-row:last-child:before, .mui-card .mui-input-group .mui-input-row:last-child:after {
height: 0;
}
.mui-card .mui-table-view {
margin-bottom: 0;
border-top: 0;
border-bottom: 0;
border-radius: 6px;
}
.mui-card .mui-table-view .mui-table-view-divider:first-child {
top: 0;
border-top-left-radius: 6px;
border-top-right-radius: 6px;
}
.mui-card .mui-table-view .mui-table-view-divider:last-child {
border-bottom-right-radius: 6px;
border-bottom-left-radius: 6px;
}
.mui-card .mui-table-view:before, .mui-card .mui-table-view:after {
height: 0;
}
.mui-card > .mui-table-view > .mui-table-view-cell:last-child:before, .mui-card > .mui-table-view > .mui-table-view-cell:last-child:after {
height: 0;
}
.mui-table-view {
position: relative;
padding-left: 0;
margin-top: 0;
margin-bottom: 0;
list-style: none;
background-color: #fff;
}
.mui-table-view:after {
position: absolute;
right: 0;
bottom: 0;
left: 0;
height: 1px;
content: '';
background-color: #c8c7cc;
-webkit-transform: scaleY(.5);
transform: scaleY(.5);
}
.mui-table-view:before {
position: absolute;
top: 0;
right: 0;
left: 0;
height: 1px;
content: '';
background-color: #c8c7cc;
-webkit-transform: scaleY(.5);
transform: scaleY(.5);
}
.mui-table-view-chevron .mui-table-view-cell {
padding-right: 65px;
}
.mui-table-view-chevron .mui-table-view-cell > a:not(.mui-btn) {
margin-right: -65px;
}
.mui-table-view-inverted {
color: #fff;
background: #333;
}
.mui-table-view-inverted:after {
position: absolute;
right: 0;
bottom: 0;
left: 0;
height: 1px;
content: '';
background-color: #222;
-webkit-transform: scaleY(.5);
transform: scaleY(.5);
}
.mui-table-view-inverted:before {
position: absolute;
top: 0;
right: 0;
left: 0;
height: 1px;
content: '';
background-color: #222;
-webkit-transform: scaleY(.5);
transform: scaleY(.5);
}
.mui-table-view-inverted .mui-table-view-cell:after {
position: absolute;
right: 0;
bottom: 0;
left: 15px;
height: 1px;
content: '';
background-color: #222;
-webkit-transform: scaleY(.5);
transform: scaleY(.5);
}
.mui-table-view-inverted .mui-table-view-cell.mui-active {
background-color: #242424;
}
.mui-table-view-inverted .mui-table-view-cell > a:not(.mui-btn).mui-active {
background-color: #242424;
}
.mui-table-view-cell {
position: relative;
padding: 11px 15px;
overflow: hidden;
background-color: inherit;
-webkit-touch-callout: none;
}
.mui-table-view-cell:after {
position: absolute;
right: 0;
bottom: 0;
left: 15px;
height: 1px;
content: '';
background-color: #c8c7cc;
-webkit-transform: scaleY(.5);
transform: scaleY(.5);
}
.mui-table-view-cell.mui-radio input[type=radio], .mui-table-view-cell.mui-checkbox input[type=checkbox] {
top: 8px;
}
.mui-table-view-cell.mui-radio.mui-left, .mui-table-view-cell.mui-checkbox.mui-left {
padding-left: 58px;
}
.mui-table-view-cell.mui-active {
background-color: #eee;
}
.mui-table-view-cell:last-child:before, .mui-table-view-cell:last-child:after {
height: 0;
}
.mui-table-view-cell > a:not(.mui-btn) {
position: relative;
display: block;
padding: inherit;
margin: -11px -15px;
overflow: hidden;
color: inherit;
text-overflow: ellipsis;
white-space: nowrap;
/*&:active {
background-color: #eee;
}*/
}
.mui-table-view-cell > a:not(.mui-btn).mui-active {
background-color: #eee;
}
.mui-table-view-cell p {
margin-bottom: 0;
}
.mui-table-view-cell.mui-transitioning > .mui-slider-handle, .mui-table-view-cell.mui-transitioning > .mui-slider-left .mui-btn, .mui-table-view-cell.mui-transitioning > .mui-slider-right .mui-btn {
-webkit-transition: -webkit-transform 300ms ease;
transition: transform 300ms ease;
}
.mui-table-view-cell > .mui-slider-handle {
background-color: #fff;
}
.mui-table-view-cell > .mui-slider-handle, .mui-table-view-cell > .mui-slider-left .mui-btn, .mui-table-view-cell > .mui-slider-right .mui-btn {
-webkit-transition: -webkit-transform 0ms ease;
transition: transform 0ms ease;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
.mui-table-view-cell > .mui-slider-left, .mui-table-view-cell > .mui-slider-right {
position: absolute;
top: 0;
display: -webkit-box;
display: -webkit-flex;
display: flex;
height: 100%;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
.mui-table-view-cell > .mui-slider-left > .mui-btn, .mui-table-view-cell > .mui-slider-right > .mui-btn {
position: relative;
left: 0;
display: -webkit-box;
display: -webkit-flex;
display: flex;
padding: 0 30px;
color: #fff;
border: 0;
border-radius: 0;
-webkit-box-align: center;
-webkit-align-items: center;
align-items: center;
}
.mui-table-view-cell > .mui-slider-left > .mui-btn:after, .mui-table-view-cell > .mui-slider-right > .mui-btn:after {
position: absolute;
top: 0;
z-index: -1;
width: 600%;
height: 100%;
content: '';
background: inherit;
}
.mui-table-view-cell > .mui-slider-left > .mui-btn.mui-icon, .mui-table-view-cell > .mui-slider-right > .mui-btn.mui-icon {
font-size: 30px;
}
.mui-table-view-cell > .mui-slider-right {
right: 0;
-webkit-transition: -webkit-transform 0ms ease;
transition: transform 0ms ease;
-webkit-transform: translateX(100%);
transform: translateX(100%);
}
.mui-table-view-cell > .mui-slider-left {
left: 0;
-webkit-transition: -webkit-transform 0ms ease;
transition: transform 0ms ease;
-webkit-transform: translateX(-100%);
transform: translateX(-100%);
}
.mui-table-view-cell > .mui-slider-left > .mui-btn:after {
right: 100%;
margin-right: -1px;
}
.mui-table-view-divider {
position: relative;
padding-top: 6px;
padding-bottom: 6px;
padding-left: 15px;
margin-top: -1px;
margin-left: 0;
font-weight: 500;
color: #999;
background-color: #fafafa;
}
.mui-table-view-divider:after {
position: absolute;
right: 0;
bottom: 0;
left: 0;
height: 1px;
content: '';
background-color: #c8c7cc;
-webkit-transform: scaleY(.5);
transform: scaleY(.5);
}
.mui-table-view-divider:before {
position: absolute;
top: 0;
right: 0;
left: 0;
height: 1px;
content: '';
background-color: #c8c7cc;
-webkit-transform: scaleY(.5);
transform: scaleY(.5);
}
.mui-table-view .mui-media,
.mui-table-view .mui-media-body {
overflow: hidden;
}
.mui-table-view .mui-media-object {
max-width: 42px;
height: 42px;
line-height: 42px;
}
.mui-table-view .mui-media-object.mui-pull-left {
margin-right: 10px;
}
.mui-table-view .mui-media-object.mui-pull-right {
margin-left: 10px;
}
.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object {
max-width: 29px;
height: 29px;
margin: -4px 0;
line-height: 29px;
}
.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object img {
max-width: 29px;
height: 29px;
line-height: 29px;
}
.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object.mui-pull-left {
margin-right: 10px;
}
.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object .mui-icon {
font-size: 29px;
}
.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-body:after {
position: absolute;
right: 0;
bottom: 0;
left: 55px;
height: 1px;
content: '';
background-color: #c8c7cc;
-webkit-transform: scaleY(.5);
transform: scaleY(.5);
}
.mui-table-view .mui-table-view-cell.mui-media-icon:after {
height: 0 !important;
}
.mui-table-view.mui-unfold .mui-table-view-cell.mui-collapse .mui-table-view {
display: block;
}
.mui-table-view.mui-unfold .mui-table-view-cell.mui-collapse .mui-table-view:before, .mui-table-view.mui-unfold .mui-table-view-cell.mui-collapse .mui-table-view:after {
height: 0 !important;
}
.mui-table-view.mui-unfold .mui-table-view-cell.mui-media-icon.mui-collapse .mui-media-body:after {
position: absolute;
right: 0;
bottom: 0;
left: 70px;
height: 1px;
content: '';
background-color: #c8c7cc;
-webkit-transform: scaleY(.5);
transform: scaleY(.5);
}
.mui-table-view-cell > .mui-btn,
.mui-table-view-cell > .mui-badge,
.mui-table-view-cell > .mui-switch,
.mui-table-view-cell > a > .mui-btn,
.mui-table-view-cell > a > .mui-badge,
.mui-table-view-cell > a > .mui-switch {
position: absolute;
top: 50%;
right: 15px;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
}
.mui-table-view-cell .mui-navigate-left > .mui-btn,
.mui-table-view-cell .mui-navigate-left > .mui-badge,
.mui-table-view-cell .mui-navigate-left > .mui-switch,
.mui-table-view-cell .mui-navigate-right > .mui-btn,
.mui-table-view-cell .mui-navigate-right > .mui-badge,
.mui-table-view-cell .mui-navigate-right > .mui-switch,
.mui-table-view-cell .mui-push-left > .mui-btn,
.mui-table-view-cell .mui-push-left > .mui-badge,
.mui-table-view-cell .mui-push-left > .mui-switch,
.mui-table-view-cell .mui-push-right > .mui-btn,
.mui-table-view-cell .mui-push-right > .mui-badge,
.mui-table-view-cell .mui-push-right > .mui-switch,
.mui-table-view-cell > a .mui-navigate-left > .mui-btn,
.mui-table-view-cell > a .mui-navigate-left > .mui-badge,
.mui-table-view-cell > a .mui-navigate-left > .mui-switch,
.mui-table-view-cell > a .mui-navigate-right > .mui-btn,
.mui-table-view-cell > a .mui-navigate-right > .mui-badge,
.mui-table-view-cell > a .mui-navigate-right > .mui-switch,
.mui-table-view-cell > a .mui-push-left > .mui-btn,
.mui-table-view-cell > a .mui-push-left > .mui-badge,
.mui-table-view-cell > a .mui-push-left > .mui-switch,
.mui-table-view-cell > a .mui-push-right > .mui-btn,
.mui-table-view-cell > a .mui-push-right > .mui-badge,
.mui-table-view-cell > a .mui-push-right > .mui-switch {
right: 35px;
}
.mui-content > .mui-table-view:first-child {
margin-top: 15px;
}
.mui-table-view-cell.mui-collapse > .mui-navigate-right:after, .mui-table-view-cell.mui-collapse > .mui-push-right:after {
content: '\e581';
}
.mui-table-view-cell.mui-collapse.mui-active .mui-table-view, .mui-table-view-cell.mui-collapse.mui-active .mui-collapse-content {
display: block;
}
.mui-table-view-cell.mui-collapse.mui-active > .mui-navigate-right:after, .mui-table-view-cell.mui-collapse.mui-active > .mui-push-right:after {
content: '\e580';
}
.mui-table-view-cell.mui-collapse .mui-collapse-content {
position: relative;
display: none;
padding: 8px 15px;
margin: 11px -15px -11px;
overflow: hidden;
background: white;
border: 1px solid #ddd;
-webkit-transition: height .35s ease;
-o-transition: height .35s ease;
transition: height .35s ease;
}
.mui-table-view-cell.mui-collapse .mui-collapse-content > .mui-input-group, .mui-table-view-cell.mui-collapse .mui-collapse-content > .mui-slider {
width: auto;
height: auto;
margin: -8px -15px;
}
.mui-table-view-cell.mui-collapse .mui-collapse-content > .mui-slider {
margin: -8px -16px;
}
.mui-table-view-cell.mui-collapse .mui-table-view {
display: none;
margin-top: 11px;
margin-right: -15px;
margin-bottom: -11px;
margin-left: -15px;
border: 0;
}
.mui-table-view-cell.mui-collapse .mui-table-view.mui-table-view-chevron {
margin-right: -65px;
}
.mui-table-view-cell.mui-collapse .mui-table-view .mui-table-view-cell {
padding-left: 31px;
background-position: 31px 100%;
}
.mui-table-view-cell.mui-collapse .mui-table-view .mui-table-view-cell:after {
position: absolute;
right: 0;
bottom: 0;
left: 30px;
height: 1px;
content: '';
background-color: #c8c7cc;
-webkit-transform: scaleY(.5);
transform: scaleY(.5);
}
.mui-table-view.mui-grid-view {
display: block;
width: 100%;
padding: 0 10px 10px 0;
font-size: 0;
white-space: normal;
}
.mui-table-view.mui-grid-view .mui-table-view-cell {
display: inline-block;
padding: 10px 0 0 14px;
margin-right: -4px;
font-size: 17px;
text-align: center;
vertical-align: middle;
background: none;
}
.mui-table-view.mui-grid-view .mui-table-view-cell .mui-media-object {
width: 100%;
max-width: 100%;
height: auto;
}
.mui-table-view.mui-grid-view .mui-table-view-cell > a:not(.mui-btn) {
margin: -10px 0 0 -14px;
}
.mui-table-view.mui-grid-view .mui-table-view-cell > a:not(.mui-btn):active, .mui-table-view.mui-grid-view .mui-table-view-cell > a:not(.mui-btn).mui-active {
background: none;
}
.mui-table-view.mui-grid-view .mui-table-view-cell .mui-media-body {
display: block;
width: 100%;
height: 15px;
margin-top: 8px;
font-size: 15px;
line-height: 15px;
color: #333;
text-overflow: ellipsis;
}
.mui-table-view.mui-grid-view .mui-table-view-cell:before, .mui-table-view.mui-grid-view .mui-table-view-cell:after {
height: 0;
}
.mui-grid-view.mui-grid-9 {
padding: 1px 0 1px 0;
padding-right: 0;
background-color: #f2f2f2;
}
.mui-grid-view.mui-grid-9 .mui-table-view-cell {
padding: 11px 15px;
margin: -1px 0 0 -1px;
vertical-align: top;
border-top: 1px solid #eee;
border-left: 1px solid #eee;
}
.mui-grid-view.mui-grid-9 .mui-table-view-cell.mui-active {
background-color: #eee;
}
.mui-grid-view.mui-grid-9 .mui-table-view-cell > a:not(.mui-btn) {
padding: 10px 0;
margin: 0;
}
.mui-grid-view.mui-grid-9:before {
height: 0;
}
.mui-grid-view.mui-grid-9 .mui-media {
color: #797979;
}
.mui-grid-view.mui-grid-9 .mui-media .mui-icon {
position: relative;
font-size: 2.4em;
}
.mui-slider-cell {
position: relative;
}
.mui-slider-cell > .mui-slider-handle {
z-index: 1;
}
.mui-slider-cell > .mui-slider-left, .mui-slider-cell > .mui-slider-right {
position: absolute;
top: 0;
bottom: 0;
z-index: 0;
}
.mui-slider-cell > .mui-slider-left {
left: 0;
}
.mui-slider-cell > .mui-slider-right {
right: 0;
}
input,
textarea,
select {
font-family: "Helvetica Neue", Helvetica, sans-serif;
font-size: 17px;
-webkit-tap-highlight-color: transparent;
-webkit-tap-highlight-color: transparent;
}
input:focus,
textarea:focus,
select:focus {
-webkit-tap-highlight-color: transparent;
-webkit-tap-highlight-color: transparent;
-webkit-user-modify: read-write-plaintext-only;
}
select,
textarea,
input[type="text"],
input[type="search"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="tel"],
input[type="color"] {
width: 100%;
height: 40px;
-webkit-appearance: none;
padding: 10px 15px;
margin-bottom: 15px;
line-height: 21px;
-webkit-user-select: text;
background-color: #fff;
border: 1px solid rgba(0, 0, 0, .2);
border-radius: 3px;
outline: none;
}
input[type=number]::-webkit-outer-spin-button {
margin: 0;
}
input[type="search"] {
height: 34px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
font-size: 16px;
text-align: center;
background-color: rgba(0, 0, 0, .1);
border: 0;
border-radius: 6px;
}
input[type="search"]:focus {
text-align: left;
}
textarea {
height: auto;
resize: none;
}
select {
height: auto;
margin-top: 1px;
font-size: 14px;
background-color: #fff;
border: 0 !important;
}
select:focus {
-webkit-user-modify: read-only;
}
.mui-input-group {
position: relative;
padding: 0;
background-color: #fff;
border: 0;
}
.mui-input-group:after {
position: absolute;
right: 0;
bottom: 0;
left: 0;
height: 1px;
content: '';
background-color: #c8c7cc;
-webkit-transform: scaleY(.5);
transform: scaleY(.5);
}
.mui-input-group:before {
position: absolute;
top: 0;
right: 0;
left: 0;
height: 1px;
content: '';
background-color: #c8c7cc;
-webkit-transform: scaleY(.5);
transform: scaleY(.5);
}
.mui-input-group input[type=text],
.mui-input-group textarea {
margin-bottom: 0;
background-color: transparent;
border: 0;
border-radius: 0;
-webkit-box-shadow: none;
box-shadow: none;
}
.mui-input-group input[type=text]:after,
.mui-input-group textarea:after {
position: absolute;
right: 0;
bottom: 0;
left: 15px;
height: 1px;
content: '';
background-color: #c8c7cc;
-webkit-transform: scaleY(.5);
transform: scaleY(.5);
}
.mui-input-group input[type="search"] {
background: none;
}
.mui-input-group input:last-child {
background-image: none;
}
.mui-input-row {
overflow: hidden;
clear: left;
}
.mui-input-row select {
height: 37px;
padding: 0;
font-size: 17px;
}
.mui-input-row:last-child,
.mui-input-row label + input, .mui-input-row .mui-btn + input {
background-image: none;
}
.mui-input-group .mui-input-row {
height: 40px;
}
.mui-input-group .mui-input-row:after {
position: absolute;
right: 0;
bottom: 0;
left: 15px;
height: 1px;
content: '';
background-color: #c8c7cc;
-webkit-transform: scaleY(.5);
transform: scaleY(.5);
}
.mui-input-row label {
float: left;
width: 35%;
padding: 10px 15px;
font-family: "Helvetica Neue", Helvetica, sans-serif;
line-height: 1.1;
}
.mui-input-row label ~ input, .mui-input-row label ~ select, .mui-input-row label ~ textarea {
float: right;
width: 65%;
padding-left: 0;
margin-bottom: 0;
border: 0;
}
.mui-input-row .mui-btn {
float: right;
width: 15%;
padding: 10px 15px;
font-family: "Helvetica Neue", Helvetica, sans-serif;
line-height: 1.1;
}
.mui-input-row .mui-btn ~ input, .mui-input-row .mui-btn ~ select, .mui-input-row .mui-btn ~ textarea {
float: left;
width: 85%;
padding-left: 0;
margin-bottom: 0;
border: 0;
}
.mui-button-row {
position: relative;
padding-top: 5px;
text-align: center;
}
.mui-input-group .mui-button-row {
height: 45px;
}
.mui-input-row {
position: relative;
}
.mui-input-row.mui-input-range {
padding-right: 20px;
overflow: visible;
}
.mui-input-row .mui-inline {
padding: 8px 0;
}
.mui-input-row .mui-input-clear ~ .mui-icon-clear, .mui-input-row .mui-input-speech ~ .mui-icon-speech {
position: absolute;
top: 10px;
right: 0;
z-index: 1;
width: 38px;
height: 38px;
font-size: 20px;
color: #999;
text-align: center;
}
.mui-input-row .mui-input-speech ~ .mui-icon-speech {
top: 8px;
font-size: 24px;
}
.mui-input-row .mui-input-clear ~ .mui-icon-clear ~ .mui-icon-speech {
display: none;
}
.mui-input-row .mui-input-clear ~ .mui-icon-clear.mui-hidden ~ .mui-icon-speech {
display: inline-block;
}
.mui-input-row .mui-icon-speech ~ .mui-placeholder {
right: 38px;
}
.mui-input-row.mui-search .mui-icon-clear {
top: 7px;
}
.mui-input-row.mui-search .mui-icon-speech {
top: 5px;
}
.mui-radio, .mui-checkbox {
position: relative;
}
.mui-radio label, .mui-checkbox label {
display: inline-block;
float: none;
width: 100%;
}
.mui-radio.mui-left input[type="radio"], .mui-checkbox.mui-left input[type="checkbox"] {
left: 20px;
}
.mui-radio.mui-left label, .mui-checkbox.mui-left label {
padding-left: 58px;
}
.mui-radio input[type="radio"], .mui-checkbox input[type="checkbox"] {
position: absolute;
top: 4px;
right: 20px;
display: inline-block;
width: 28px;
height: 26px;
-webkit-appearance: none;
background-color: transparent;
border: 0;
outline: 0 !important;
}
.mui-radio input[type="radio"]:before, .mui-checkbox input[type="checkbox"]:before {
font-family: Muiicons;
font-size: 28px;
font-weight: normal;
line-height: 1;
color: rgba(170, 170, 170, .6);
text-decoration: none;
background: none;
border-radius: 0;
-webkit-font-smoothing: antialiased;
}
.mui-radio input[type="radio"]:checked:before, .mui-checkbox input[type="checkbox"]:checked:before {
color: #007aff;
}
.mui-radio input[type="radio"]:before {
content: "\e411";
}
.mui-radio input[type="radio"]:checked:before {
content: "\e441";
}
.mui-checkbox input[type="checkbox"]:before {
content: "\e411";
}
.mui-checkbox input[type="checkbox"]:checked:before {
content: "\e442";
}
.mui-select {
position: relative;
}
.mui-select:before {
position: absolute;
top: 8px;
right: 21px;
font-family: Muiicons;
color: rgba(170, 170, 170, .6);
content: '\e581';
}
.mui-input-row .mui-switch {
float: right;
margin-top: 5px;
margin-right: 20px;
}
.mui-input-range {
/*input[type="range"] {
-webkit-appearance: none;
background: #999;
height: 36px;
border-radius: 1px;
overflow: hidden;
margin-top: 2px;
margin-bottom: 2px;
outline:none;
position:relative;
width:100%;
}*/
/*input[type='range']::-webkit-slider-thumb {
-webkit-appearance: none!important;
opacity: 0.5;
height:28px;
width:28px;
border-radius: 50%;
background:#00b7fb;
position: relative;
pointer-events: none;
-webkit-box-sizing: border-box;
box-sizing: border-box;
&:before{
position: absolute;
top: 13px;
left: -2000px;
width: 2000px;
height: 2px;
background: #00b7fb;
content:' ';
}
}*/
}
.mui-input-range input[type="range"] {
position: relative;
width: 100%;
height: 2px;
-webkit-appearance: none !important;
padding: 0;
margin: 17px 0;
cursor: pointer;
background-color: #999;
border: 0;
border-radius: 3px;
outline: none;
}
.mui-input-range input[type='range']::-webkit-slider-thumb {
width: 28px;
height: 28px;
-webkit-appearance: none !important;
background-color: #007aff;
background-clip: padding-box;
border-color: #0062cc;
border-radius: 50%;
}
.mui-input-range label ~ input[type="range"] {
width: 65%;
}
.mui-input-range .mui-tooltip {
position: absolute;
top: -70px;
z-index: 1;
width: 64px;
height: 64px;
font-size: 36px;
line-height: 64px;
color: #333;
text-align: center;
text-shadow: 0 1px 0 #f3f3f3;
background-color: #fff;
border: 1px solid #ddd;
border-radius: 6px;
opacity: .8;
}
.mui-search {
position: relative;
}
.mui-search input[type="search"] {
padding-left: 30px;
}
.mui-search .mui-placeholder {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1;
display: inline-block;
height: 34px;
font-size: 16px;
line-height: 34px;
color: #999;
text-align: center;
background: none;
border: 0;
border-radius: 6px;
}
.mui-search .mui-placeholder .mui-icon {
font-size: 20px;
color: #333;
}
.mui-search:before {
position: absolute;
top: 50%;
right: 50%;
display: none;
margin-top: -18px;
margin-right: 31px;
font-family: Muiicons;
font-size: 20px;
font-weight: normal;
content: '\e466';
}
.mui-search.mui-active:before {
right: auto;
left: 5px;
display: block;
margin-right: 0;
font-size: 20px;
}
.mui-search.mui-active input[type="search"] {
text-align: left;
}
.mui-search.mui-active .mui-placeholder {
display: none;
}
.mui-segmented-control {
position: relative;
display: table;
width: 100%;
overflow: hidden;
font-size: 15px;
font-weight: 400;
table-layout: fixed;
background-color: transparent;
border: 1px solid #007aff;
border-radius: 3px;
-webkit-touch-callout: none;
}
.mui-segmented-control.mui-scroll-wrapper {
height: 38px;
}
.mui-segmented-control.mui-scroll-wrapper .mui-scroll {
width: auto;
height: 40px;
white-space: nowrap;
}
.mui-segmented-control.mui-scroll-wrapper .mui-control-item {
display: inline-block;
width: auto;
padding: 0 20px;
border: 0;
}
.mui-segmented-control .mui-control-item {
display: table-cell;
width: 1%;
overflow: hidden;
line-height: 38px;
color: #007aff;
text-align: center;
text-overflow: ellipsis;
white-space: nowrap;
border-color: #007aff;
border-left: 1px solid #007aff;
-webkit-transition: background-color .1s linear;
transition: background-color .1s linear;
}
.mui-segmented-control .mui-control-item:first-child {
border-left-width: 0;
}
.mui-segmented-control .mui-control-item.mui-active {
color: #fff;
background-color: #007aff;
}
.mui-segmented-control.mui-segmented-control-inverted {
width: 100%;
border: 0;
border-radius: 0;
}
.mui-segmented-control.mui-segmented-control-inverted .mui-control-item {
color: inherit;
border: 0;
}
.mui-segmented-control.mui-segmented-control-inverted .mui-control-item.mui-active {
color: #007aff;
background: none;
border-bottom: 2px solid #007aff;
}
.mui-segmented-control.mui-segmented-control-inverted ~ .mui-slider-progress-bar {
background-color: #007aff;
}
.mui-segmented-control-positive {
border: 1px solid #4cd964;
}
.mui-segmented-control-positive .mui-control-item {
color: #4cd964;
border-color: inherit;
}
.mui-segmented-control-positive .mui-control-item.mui-active {
color: #fff;
background-color: #4cd964;
}
.mui-segmented-control-positive.mui-segmented-control-inverted .mui-control-item.mui-active {
color: #4cd964;
background: none;
border-bottom: 2px solid #4cd964;
}
.mui-segmented-control-positive.mui-segmented-control-inverted ~ .mui-slider-progress-bar {
background-color: #4cd964;
}
.mui-segmented-control-negative {
border: 1px solid #dd524d;
}
.mui-segmented-control-negative .mui-control-item {
color: #dd524d;
border-color: inherit;
}
.mui-segmented-control-negative .mui-control-item.mui-active {
color: #fff;
background-color: #dd524d;
}
.mui-segmented-control-negative.mui-segmented-control-inverted .mui-control-item.mui-active {
color: #dd524d;
background: none;
border-bottom: 2px solid #dd524d;
}
.mui-segmented-control-negative.mui-segmented-control-inverted ~ .mui-slider-progress-bar {
background-color: #dd524d;
}
.mui-control-content {
position: relative;
display: none;
}
.mui-control-content.mui-active {
display: block;
}
.mui-popover {
position: absolute;
z-index: 999;
display: none;
width: 280px;
background-color: rgba(247, 247, 247, .98);
border-radius: 7px;
-webkit-box-shadow: 0 0 15px rgba(0, 0, 0, .1);
box-shadow: 0 0 15px rgba(0, 0, 0, .1);
opacity: 0;
-webkit-transition: opacity .3s;
transition: opacity .3s;
-webkit-transition-property: opacity;
transition-property: opacity;
-webkit-transform: none;
transform: none;
}
.mui-popover .mui-popover-arrow {
position: absolute;
top: -25px;
left: 0;
z-index: 1000;
width: 26px;
height: 26px;
overflow: hidden;
}
.mui-popover .mui-popover-arrow:after {
position: absolute;
top: 19px;
left: 0;
width: 26px;
height: 26px;
content: ' ';
background: rgba(247, 247, 247, .98);
border-radius: 3px;
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
}
.mui-popover .mui-popover-arrow.mui-bottom {
top: 100%;
left: -26px;
margin-top: -1px;
}
.mui-popover .mui-popover-arrow.mui-bottom:after {
top: -19px;
left: 0;
}
.mui-popover.mui-popover-action {
bottom: 0;
width: 100%;
background: none;
border-radius: 0;
-webkit-box-shadow: none;
box-shadow: none;
-webkit-transition: -webkit-transform .3s, opacity .3s;
transition: transform .3s, opacity .3s;
-webkit-transform: translate3d(0, 100%, 0);
transform: translate3d(0, 100%, 0);
}
.mui-popover.mui-popover-action .mui-popover-arrow {
display: none;
}
.mui-popover.mui-popover-action.mui-active {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
.mui-popover.mui-popover-action .mui-table-view {
margin: 8px;
color: #007aff;
text-align: center;
border-radius: 4px;
}
.mui-popover.mui-popover-action .mui-table-view .mui-table-view-cell:after {
position: absolute;
right: 0;
bottom: 0;
left: 0;
height: 1px;
content: '';
background-color: #c8c7cc;
-webkit-transform: scaleY(.5);
transform: scaleY(.5);
}
.mui-popover.mui-popover-action .mui-table-view small {
display: block;
font-weight: 400;
line-height: 1.3;
}
.mui-popover.mui-active {
display: block;
opacity: 1;
}
.mui-popover .mui-bar ~ .mui-table-view {
padding-top: 44px;
}
.mui-backdrop {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 998;
background-color: rgba(0, 0, 0, .3);
}
.mui-bar-backdrop.mui-backdrop {
bottom: 50px;
background: none;
}
.mui-backdrop-action.mui-backdrop {
background-color: rgba(0, 0, 0, .3);
}
.mui-bar-backdrop.mui-backdrop, .mui-backdrop-action.mui-backdrop {
opacity: 0;
}
.mui-bar-backdrop.mui-backdrop.mui-active, .mui-backdrop-action.mui-backdrop.mui-active {
opacity: 1;
-webkit-transition: all .4s ease;
transition: all .4s ease;
}
.mui-popover .mui-btn-block {
margin-bottom: 5px;
}
.mui-popover .mui-btn-block:last-child {
margin-bottom: 0;
}
.mui-popover .mui-bar {
-webkit-box-shadow: none;
box-shadow: none;
}
.mui-popover .mui-bar-nav {
border-bottom: 1px solid rgba(0, 0, 0, .15);
border-top-left-radius: 12px;
border-top-right-radius: 12px;
-webkit-box-shadow: none;
box-shadow: none;
}
.mui-popover .mui-scroll-wrapper {
margin: 7px 0;
background-clip: padding-box;
border-radius: 7px;
}
.mui-popover .mui-scroll .mui-table-view {
max-height: none;
}
.mui-popover .mui-table-view {
max-height: 300px;
margin-bottom: 0;
overflow: auto;
-webkit-overflow-scrolling: touch;
background-color: rgba(247, 247, 247, .98);
background-image: none;
border-radius: 7px;
}
.mui-popover .mui-table-view:before, .mui-popover .mui-table-view:after {
height: 0;
}
.mui-popover .mui-table-view .mui-table-view-cell:first-child,
.mui-popover .mui-table-view .mui-table-view-cell:first-child > a:not(.mui-btn) {
border-top-left-radius: 12px;
border-top-right-radius: 12px;
}
.mui-popover .mui-table-view .mui-table-view-cell:last-child,
.mui-popover .mui-table-view .mui-table-view-cell:last-child > a:not(.mui-btn) {
border-bottom-right-radius: 12px;
border-bottom-left-radius: 12px;
}
.mui-popover.mui-bar-popover .mui-table-view {
width: 106px;
}
.mui-popover.mui-bar-popover .mui-table-view .mui-table-view-cell {
padding: 11px 15px 11px 15px;
background-position: 0 100%;
}
.mui-popover.mui-bar-popover .mui-table-view .mui-table-view-cell > a:not(.mui-btn) {
margin: -11px -15px -11px -15px;
}
.mui-pagination {
display: inline-block;
padding-left: 0;
margin: 0 auto;
border-radius: 6px;
}
.mui-pagination > li {
display: inline;
}
.mui-pagination > li > a,
.mui-pagination > li > span {
position: relative;
float: left;
padding: 6px 12px;
margin-left: -1px;
line-height: 1.428571429;
color: #007aff;
text-decoration: none;
background-color: #fff;
border: 1px solid #ddd;
}
.mui-pagination > li:first-child > a,
.mui-pagination > li:first-child > span {
margin-left: 0;
background-clip: padding-box;
border-top-left-radius: 6px;
border-bottom-left-radius: 6px;
}
.mui-pagination > li:last-child > a,
.mui-pagination > li:last-child > span {
background-clip: padding-box;
border-top-right-radius: 6px;
border-bottom-right-radius: 6px;
}
.mui-pagination > li:active > a, .mui-pagination > li:active > a:active,
.mui-pagination > li:active > span,
.mui-pagination > li:active > span:active,
.mui-pagination > li.mui-active > a,
.mui-pagination > li.mui-active > a:active,
.mui-pagination > li.mui-active > span,
.mui-pagination > li.mui-active > span:active {
z-index: 2;
color: #fff;
cursor: default;
background-color: #007aff;
border-color: #007aff;
}
.mui-pagination > li.mui-disabled > span,
.mui-pagination > li.mui-disabled > span:active,
.mui-pagination > li.mui-disabled > a,
.mui-pagination > li.mui-disabled > a:active {
color: #777;
background-color: #fff;
border: 1px solid #ddd;
opacity: .6;
}
.mui-pagination-lg > li > a,
.mui-pagination-lg > li > span {
padding: 10px 16px;
font-size: 18px;
}
.mui-pagination-sm > li > a,
.mui-pagination-sm > li > span {
padding: 5px 10px;
font-size: 12px;
}
.mui-pager {
padding-left: 0;
text-align: center;
list-style: none;
}
.mui-pager:before, .mui-pager:after {
display: table;
content: " ";
}
.mui-pager:after {
clear: both;
}
.mui-pager li {
display: inline;
}
.mui-pager li > a,
.mui-pager li > span {
display: inline-block;
padding: 5px 14px;
background-color: #fff;
background-clip: padding-box;
border: 1px solid #ddd;
border-radius: 6px;
}
.mui-pager li:active > a, .mui-pager li:active > span, .mui-pager li.mui-active > a, .mui-pager li.mui-active > span {
color: #fff;
text-decoration: none;
cursor: default;
background-color: #007aff;
border-color: #007aff;
}
.mui-pager .mui-next > a,
.mui-pager .mui-next > span {
float: right;
}
.mui-pager .mui-previous > a,
.mui-pager .mui-previous > span {
float: left;
}
.mui-pager .mui-disabled > a,
.mui-pager .mui-disabled > a:active,
.mui-pager .mui-disabled > span,
.mui-pager .mui-disabled > span:active {
color: #777;
background-color: #fff;
border: 1px solid #ddd;
opacity: .6;
}
.mui-modal {
position: fixed;
top: 0;
z-index: 999;
width: 100%;
min-height: 100%;
overflow: hidden;
background-color: #fff;
opacity: 0;
-webkit-transition: -webkit-transform .25s, opacity 1ms .25s;
transition: transform .25s, opacity 1ms .25s;
-webkit-transition-timing-function: cubic-bezier(.1, .5, .1, 1);
transition-timing-function: cubic-bezier(.1, .5, .1, 1);
-webkit-transform: translate3d(0, 100%, 0);
transform: translate3d(0, 100%, 0);
}
.mui-modal.mui-active {
height: 100%;
opacity: 1;
-webkit-transition: -webkit-transform .25s;
transition: transform .25s;
-webkit-transition-timing-function: cubic-bezier(.1, .5, .1, 1);
transition-timing-function: cubic-bezier(.1, .5, .1, 1);
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
.mui-android .mui-modal .mui-bar {
position: static;
}
.mui-android .mui-modal .mui-bar-nav ~ .mui-content {
padding-top: 0;
}
.mui-slider {
position: relative;
width: 100%;
overflow: hidden;
}
.mui-slider .mui-segmented-control.mui-segmented-control-inverted .mui-control-item.mui-active {
border-bottom: 0;
}
.mui-slider .mui-segmented-control.mui-segmented-control-inverted ~ .mui-slider-group .mui-slider-item {
border-top: 1px solid #c8c7cc;
border-bottom: 1px solid #c8c7cc;
}
.mui-slider .mui-slider-group {
position: relative;
font-size: 0;
white-space: nowrap;
-webkit-transition: all 0s linear;
transition: all 0s linear;
}
.mui-slider .mui-slider-group .mui-slider-item {
position: relative;
display: inline-block;
width: 100%;
height: 100%;
font-size: 14px;
vertical-align: top;
}
.mui-slider .mui-slider-group .mui-slider-item > a:not(.mui-control-item) {
position: relative;
display: block;
line-height: 0;
}
.mui-slider .mui-slider-group .mui-slider-item img {
width: 100%;
}
.mui-slider .mui-slider-group .mui-slider-item .mui-table-view:before, .mui-slider .mui-slider-group .mui-slider-item .mui-table-view:after {
height: 0;
}
.mui-slider .mui-slider-group.mui-slider-loop {
-webkit-transform: translate(-100%, 0px);
transform: translate(-100%, 0px);
}
.mui-slider-title {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 30px;
margin: 0;
line-height: 30px;
text-align: left;
text-indent: 12px;
background-color: #000;
opacity: .8;
}
.mui-slider-indicator {
position: absolute;
bottom: 8px;
width: 100%;
text-align: center;
background: none;
}
.mui-slider-indicator.mui-segmented-control {
position: relative;
bottom: auto;
}
.mui-slider-indicator .mui-indicator {
display: inline-block;
width: 6px;
height: 6px;
margin: 1px 6px;
cursor: pointer;
background: #aaa;
border-radius: 50%;
-webkit-box-shadow: 0 0 1px 1px rgba(130, 130, 130, .7);
box-shadow: 0 0 1px 1px rgba(130, 130, 130, .7);
}
.mui-slider-indicator .mui-active.mui-indicator {
background: #fff;
}
.mui-slider-indicator .mui-icon {
width: 40px;
height: 30px;
margin: 3px;
font-size: 20px;
line-height: 30px;
text-align: center;
border: 1px solid #ddd;
}
.mui-slider-indicator .mui-number {
display: inline-block;
width: 58px;
line-height: 32px;
}
.mui-slider-indicator .mui-number span {
color: #ff5053;
}
.mui-slider-progress-bar {
z-index: 1;
height: 2px;
-webkit-transform: translateZ(0);
transform: translateZ(0);
-webkit-backface-visibility: hidden;
}
.mui-switch {
position: relative;
display: block;
width: 74px;
height: 30px;
background-color: #fff;
background-clip: padding-box;
border: 2px solid #ddd;
border-radius: 20px;
-webkit-transition-timing-function: ease-in-out;
transition-timing-function: ease-in-out;
-webkit-transition-duration: .2s;
transition-duration: .2s;
-webkit-transition-property: background-color, border;
transition-property: background-color, border;
}
.mui-switch.mui-disabled {
opacity: .3;
}
.mui-switch .mui-switch-handle {
position: absolute;
top: -1px;
left: -1px;
z-index: 1;
width: 28px;
height: 28px;
background-color: #fff;
background-clip: padding-box;
border-radius: 16px;
-webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, .4);
box-shadow: 0 2px 5px rgba(0, 0, 0, .4);
-webkit-transition: .2s ease-in-out;
transition: .2s ease-in-out;
-webkit-transition-property: -webkit-transform, width,left;
transition-property: transform, width,left;
}
.mui-switch:before {
position: absolute;
top: 3px;
right: 11px;
font-size: 13px;
color: #999;
text-transform: uppercase;
content: "Off";
}
.mui-switch.mui-dragging {
background-color: rgba(247, 247, 247, .98);
border-color: rgba(247, 247, 247, .98);
}
.mui-switch.mui-dragging .mui-switch-handle {
width: 38px;
}
.mui-switch.mui-dragging.mui-active .mui-switch-handle {
left: -11px;
width: 38px;
}
.mui-switch.mui-active {
background-color: #4cd964;
border-color: #4cd964;
}
.mui-switch.mui-active .mui-switch-handle {
-webkit-transform: translate3d(43px, 0, 0);
transform: translate3d(43px, 0, 0);
}
.mui-switch.mui-active:before {
right: auto;
left: 15px;
color: #fff;
content: "On";
}
.mui-switch input[type="checkbox"] {
display: none;
}
.mui-switch-mini {
width: 47px;
}
.mui-switch-mini:before {
display: none;
}
.mui-switch-mini.mui-active .mui-switch-handle {
-webkit-transform: translate3d(16px, 0, 0);
transform: translate3d(16px, 0, 0);
}
.mui-switch-blue.mui-active {
background-color: #007aff;
border: 2px solid #007aff;
}
.mui-content.mui-fade {
left: 0;
opacity: 0;
}
.mui-content.mui-fade.mui-in {
opacity: 1;
}
.mui-content.mui-sliding {
z-index: 2;
-webkit-transition: -webkit-transform .4s;
transition: transform .4s;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
.mui-content.mui-sliding.mui-left {
z-index: 1;
-webkit-transform: translate3d(-100%, 0, 0);
transform: translate3d(-100%, 0, 0);
}
.mui-content.mui-sliding.mui-right {
z-index: 3;
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0);
}
.mui-navigate-left:after,
.mui-navigate-right:after,
.mui-push-left:after,
.mui-push-right:after {
position: absolute;
top: 50%;
display: inline-block;
font-family: Muiicons;
font-size: inherit;
line-height: 1;
color: #bbb;
text-decoration: none;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
-webkit-font-smoothing: antialiased;
}
.mui-navigate-left:after,
.mui-push-left:after {
left: 15px;
content: '\e582';
}
.mui-navigate-right:after,
.mui-push-right:after {
right: 15px;
content: '\e583';
}
.mui-pull-top-pocket, .mui-pull-bottom-pocket {
position: absolute;
left: 0;
display: block;
width: 100%;
height: 50px;
overflow: hidden;
visibility: hidden;
}
.mui-plus-pullrefresh .mui-pull-top-pocket, .mui-plus-pullrefresh .mui-pull-bottom-pocket {
display: none;
visibility: visible;
}
.mui-pull-top-pocket {
top: 0;
}
.mui-bar-nav ~ .mui-content .mui-pull-top-pocket {
top: 44px;
}
.mui-bar-nav ~ .mui-bar-header-secondary ~ .mui-content .mui-pull-top-pocket {
top: 88px;
}
.mui-pull-bottom-pocket {
position: relative;
bottom: 0;
height: 40px;
}
.mui-pull-bottom-pocket .mui-pull-loading {
visibility: hidden;
}
.mui-pull-bottom-pocket .mui-pull-loading.mui-in {
display: inline-block;
}
.mui-pull {
position: absolute;
right: 0;
bottom: 10px;
left: 0;
font-weight: bold;
color: #777;
text-align: center;
}
.mui-pull-loading {
margin-right: 10px;
vertical-align: middle;
-webkit-transition: -webkit-transform .4s;
transition: transform .4s;
-webkit-transition-duration: 400ms;
transition-duration: 400ms;
-webkit-backface-visibility: hidden;
}
.mui-pull-loading.mui-reverse {
-webkit-transform: rotate(180deg) translateZ(0);
transform: rotate(180deg) translateZ(0);
}
.mui-pull-caption {
position: relative;
display: inline-block;
margin-top: 0;
overflow: visible;
font-size: 15px;
line-height: 24px;
vertical-align: middle;
}
.mui-pull-caption span {
display: none;
}
.mui-pull-caption span.mui-in {
display: inline;
}
.mui-toast-container {
position: fixed;
bottom: 50px;
z-index: 9999;
width: 100%;
}
.mui-toast-message {
width: 270px;
padding: 5px 5px 5px 5px;
margin: 5px auto 5px auto;
font-size: 14px;
color: #000;
text-align: center;
background-color: #d8d8d8;
border-radius: 7px;
}
@font-face {
font-family: Muiicons;
font-style: normal;
font-weight: normal;
src: url("../fonts/mui.ttf") format("truetype");
}
.mui-icon {
display: inline-block;
font-family: Muiicons;
font-size: 24px;
font-style: normal;
font-weight: normal;
line-height: 1;
text-decoration: none;
-webkit-font-smoothing: antialiased;
}
.mui-icon.mui-right:before {
float: right;
padding-left: .2em;
}
.mui-icon-contact:before {
content: "\e100";
}
.mui-icon-person:before {
content: "\e101";
}
.mui-icon-personadd:before {
content: "\e102";
}
.mui-icon-contact-filled:before {
content: "\e130";
}
.mui-icon-person-filled:before {
content: "\e131";
}
.mui-icon-personadd-filled:before {
content: "\e132";
}
.mui-icon-phone:before {
content: "\e200";
}
.mui-icon-email:before {
content: "\e201";
}
.mui-icon-chatbubble:before {
content: "\e202";
}
.mui-icon-chatboxes:before {
content: "\e203";
}
.mui-icon-phone-filled:before {
content: "\e230";
}
.mui-icon-email-filled:before {
content: "\e231";
}
.mui-icon-chatbubble-filled:before {
content: "\e232";
}
.mui-icon-chatboxes-filled:before {
content: "\e233";
}
.mui-icon-weibo:before {
content: "\e260";
}
.mui-icon-weixin:before {
content: "\e261";
}
.mui-icon-pengyouquan:before {
content: "\e262";
}
.mui-icon-chat:before {
content: "\e263";
}
.mui-icon-videocam:before {
content: "\e300";
}
.mui-icon-camera:before {
content: "\e301";
}
.mui-icon-mic:before {
content: "\e302";
}
.mui-icon-location:before {
content: "\e303";
}
.mui-icon-mic-filled:before, .mui-icon-speech:before {
content: "\e332";
}
.mui-icon-location-filled:before {
content: "\e333";
}
.mui-icon-micoff:before {
content: "\e360";
}
.mui-icon-image:before {
content: "\e363";
}
.mui-icon-map:before {
content: "\e364";
}
.mui-icon-compose:before {
content: "\e400";
}
.mui-icon-trash:before {
content: "\e401";
}
.mui-icon-upload:before {
content: "\e402";
}
.mui-icon-download:before {
content: "\e403";
}
.mui-icon-close:before {
content: "\e404";
}
.mui-icon-redo:before {
content: "\e405";
}
.mui-icon-undo:before {
content: "\e406";
}
.mui-icon-refresh:before {
content: "\e407";
}
.mui-icon-star:before {
content: "\e408";
}
.mui-icon-plus:before {
content: "\e409";
}
.mui-icon-minus:before {
content: "\e410";
}
.mui-icon-circle:before, .mui-icon-checkbox:before {
content: "\e411";
}
.mui-icon-close-filled:before, .mui-icon-clear:before {
content: "\e434";
}
.mui-icon-refresh-filled:before {
content: "\e437";
}
.mui-icon-star-filled:before {
content: "\e438";
}
.mui-icon-plus-filled:before {
content: "\e439";
}
.mui-icon-minus-filled:before {
content: "\e440";
}
.mui-icon-circle-filled:before {
content: "\e441";
}
.mui-icon-checkbox-filled:before {
content: "\e442";
}
.mui-icon-closeempty:before {
content: "\e460";
}
.mui-icon-refreshempty:before {
content: "\e461";
}
.mui-icon-reload:before {
content: "\e462";
}
.mui-icon-starhalf:before {
content: "\e463";
}
.mui-icon-spinner:before {
content: "\e464";
}
.mui-icon-spinner-cycle:before {
content: "\e465";
}
.mui-icon-search:before {
content: "\e466";
}
.mui-icon-plusempty:before {
content: "\e468";
}
.mui-icon-forward:before {
content: "\e470";
}
.mui-icon-back:before, .mui-icon-left-nav:before {
content: "\e471";
}
.mui-icon-checkmarkempty:before {
content: "\e472";
}
.mui-icon-home:before {
content: "\e500";
}
.mui-icon-navigate:before {
content: "\e501";
}
.mui-icon-gear:before {
content: "\e502";
}
.mui-icon-paperplane:before {
content: "\e503";
}
.mui-icon-info:before {
content: "\e504";
}
.mui-icon-help:before {
content: "\e505";
}
.mui-icon-locked:before {
content: "\e506";
}
.mui-icon-more:before {
content: "\e507";
}
.mui-icon-flag:before {
content: "\e508";
}
.mui-icon-home-filled:before {
content: "\e530";
}
.mui-icon-gear-filled:before {
content: "\e532";
}
.mui-icon-info-filled:before {
content: "\e534";
}
.mui-icon-help-filled:before {
content: "\e535";
}
.mui-icon-more-filled:before {
content: "\e537";
}
.mui-icon-settings:before {
content: "\e560";
}
.mui-icon-list:before {
content: "\e562";
}
.mui-icon-bars:before {
content: "\e563";
}
.mui-icon-loop:before {
content: "\e565";
}
.mui-icon-paperclip:before {
content: "\e567";
}
.mui-icon-arrowup:before {
content: "\e580";
}
.mui-icon-arrowdown:before {
content: "\e581";
}
.mui-icon-arrowleft:before {
content: "\e582";
}
.mui-icon-arrowright:before {
content: "\e583";
}
.mui-icon-arrowthinup:before {
content: "\e584";
}
.mui-icon-arrowthindown:before {
content: "\e585";
}
.mui-icon-arrowthinleft:before {
content: "\e586";
}
.mui-icon-arrowthinright:before {
content: "\e587";
}
.mui-icon-pulldown:before {
content: "\e588";
}
.mui-fullscreen {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: 100%;
height: 100%;
}
.mui-fullscreen .mui-slider-group {
height: 100%;
}
.mui-fullscreen .mui-segmented-control ~ .mui-slider-group {
position: absolute;
top: 40px;
bottom: 0;
width: 100%;
height: auto;
}
.mui-fullscreen .mui-slider-item > a {
top: 50%;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
}
.mui-bar-tab ~ .mui-content .mui-slider.mui-fullscreen .mui-segmented-control ~ .mui-slider-group {
bottom: 50px;
}
.mui-android.mui-android-4-0 input:focus,
.mui-android.mui-android-4-0 textarea:focus {
-webkit-user-modify: inherit;
}
This source diff could not be displayed because it is too large. You can view the blob instead.
<!DOCTYPE html>
<html class="ui-page-login">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title></title>
<link href="css/mui.min.css" rel="stylesheet" />
<link href="css/style.css" rel="stylesheet" />
<style>
.area {
margin: 20px auto 0px auto;
}
.mui-input-group:first-child {
margin-top: 20px;
}
.mui-input-group label {
width: 22%;
}
.mui-input-row label~input,
.mui-input-row label~select,
.mui-input-row label~textarea {
width: 78%;
}
.mui-checkbox input[type=checkbox],
.mui-radio input[type=radio] {
top: 6px;
}
.mui-content-padded {
margin-top: 25px;
}
.mui-btn {
padding: 10px;
}
.mui-input-row label~input, .mui-input-row label~select, .mui-input-row label~textarea{
margin-top: 1px;
}
</style>
</head>
<body>
<header class="mui-bar mui-bar-nav">
<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
<h1 class="mui-title">找回密码</h1>
</header>
<div class="mui-content">
<form class="mui-input-group">
<!--
<div class="mui-input-row">
<label>账号</label>
<input id='account' type="text" class="mui-input-clear mui-input" placeholder="请输入账号">
</div>
-->
<div class="mui-input-row">
<label>邮箱</label>
<input id='email' type="email" class="mui-input-clear mui-input" placeholder="请输入注册邮箱">
</div>
</form>
<div class="mui-content-padded">
<button id='sendMail' class="mui-btn mui-btn-block mui-btn-primary">提交</button>
</div>
</div>
<script src="js/mui.min.js"></script>
<script src="js/app.js"></script>
<script>
(function($, doc) {
$.init();
$.plusReady(function() {
var sendButton = doc.getElementById('sendMail');
var emailBox = doc.getElementById('email');
sendButton.addEventListener('tap', function() {
app.forgetPassword(emailBox.value, function(err, info) {
plus.nativeUI.toast(err || info);
});
}, false);
});
}(mui, document));
</script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title></title>
<style>
html,
body {
height: 100%;
overflow: hidden;
padding: 0px;
margin: 0px;
}
.loading {
position: absolute;
top: 50%;
height: 18px;
margin-top: -9px;
text-align: center;
width: 100%;
left: 0px;
}
</style>
</head>
<body>
<div class='loading'>
正在启动应用...
</div>
<script src="js/mui.min.js"></script>
<script src="js/app.js"></script>
<script>
(function($) {
$.init();
$.plusReady(function() {
var settings = app.getSettings();
var state = app.getState();
if (settings.autoLogin && state.token && settings.gestures) {
$.openWindow({
url: 'unlock.html',
id: 'unlock'
});
} else if (settings.autoLogin && state.token) {
$.openWindow({
url: 'main.html',
id: 'main'
});
} else {
$.openWindow({
url: 'login.html',
id: 'login'
});
}
$.plusReady(function() {
setTimeout(function() {
//关闭 splash
plus.navigator.closeSplashscreen();
}, 600);
});
//
var backButtonPress = 0;
$.back = function(event) {
backButtonPress++;
if (backButtonPress > 1) {
plus.runtime.quit();
} else {
plus.nativeUI.toast('再按一次退出应用');
}
setTimeout(function() {
backButtonPress = 0;
}, 1000);
return false;
};
});
}(mui));
</script>
</body>
</html>
\ No newline at end of file
/**
* 演示程序当前的 “注册/登录” 等操作,是基于 “本地存储” 完成的
* 当您要参考这个演示程序进行相关 app 的开发时,
* 请注意将相关方法调整成 “基于服务端Service” 的实现。
**/
(function($, owner) { (function($, owner) {
/**
* 用户登录
**/
owner.login = function(loginInfo, callback) { owner.login = function(loginInfo, callback) {
callback = callback || $.noop; callback = callback || $.noop;
loginInfo = loginInfo || {}; loginInfo = loginInfo || {};
loginInfo.account = loginInfo.account || ''; loginInfo.account = loginInfo.account || '';
loginInfo.password = loginInfo.password || ''; loginInfo.password = loginInfo.password || '';
if (loginInfo.account.length < 5) {
return callback('账号最短为 5 个字符');
}
if (loginInfo.password.length < 6) {
return callback('密码最短为 6 个字符');
}
var users = JSON.parse(localStorage.getItem('$users') || '[]'); var users = JSON.parse(localStorage.getItem('$users') || '[]');
var authed = users.some(function(user) { var authed = users.some(function(user) {
return loginInfo.account == user.account && loginInfo.password == user.password; return loginInfo.account == user.account && loginInfo.password == user.password;
...@@ -18,6 +32,10 @@ ...@@ -18,6 +32,10 @@
return callback('用户名或密码错误'); return callback('用户名或密码错误');
} }
}; };
/**
* 新用户注册
**/
owner.reg = function(regInfo, callback) { owner.reg = function(regInfo, callback) {
callback = callback || $.noop; callback = callback || $.noop;
regInfo = regInfo || {}; regInfo = regInfo || {};
...@@ -29,16 +47,26 @@ ...@@ -29,16 +47,26 @@
if (regInfo.password.length < 6) { if (regInfo.password.length < 6) {
return callback('密码最短需要 6 个字符'); return callback('密码最短需要 6 个字符');
} }
if (!checkEmail(regInfo.email)) {
return callback('邮箱地址不合法');
}
var users = JSON.parse(localStorage.getItem('$users') || '[]'); var users = JSON.parse(localStorage.getItem('$users') || '[]');
users.push(regInfo); users.push(regInfo);
localStorage.setItem('$users', JSON.stringify(users)); localStorage.setItem('$users', JSON.stringify(users));
return callback(); return callback();
}; };
/**
* 获取当前状态
**/
owner.getState = function() { owner.getState = function() {
var stateText = localStorage.getItem('$state') || "{}"; var stateText = localStorage.getItem('$state') || "{}";
return JSON.parse(stateText); return JSON.parse(stateText);
}; };
/**
* 设置当前状态
**/
owner.setState = function(state) { owner.setState = function(state) {
state = state || {}; state = state || {};
localStorage.setItem('$state', JSON.stringify(state)); localStorage.setItem('$state', JSON.stringify(state));
...@@ -46,10 +74,34 @@ ...@@ -46,10 +74,34 @@
settings.gestures = ''; settings.gestures = '';
owner.setSettings(settings); owner.setSettings(settings);
}; };
var checkEmail=function(email){
email = email || '';
return (email.length > 3 && email.indexOf('@') > -1);
};
/**
* 找回密码
**/
owner.forgetPassword = function(email, callback) {
callback = callback || $.noop;
if (!checkEmail(email)) {
return callback('邮箱地址不合法');
}
return callback(null, '新的随机密码已经发送到您的邮箱,请查收邮件。');
};
/**
* 获取应用本地配置
**/
owner.setSettings = function(settings) { owner.setSettings = function(settings) {
settings = settings || {}; settings = settings || {};
localStorage.setItem('$settings', JSON.stringify(settings)); localStorage.setItem('$settings', JSON.stringify(settings));
} }
/**
* 设置应用本地配置
**/
owner.getSettings = function() { owner.getSettings = function() {
var settingsText = localStorage.getItem('$settings') || "{}"; var settingsText = localStorage.getItem('$settings') || "{}";
return JSON.parse(settingsText); return JSON.parse(settingsText);
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -19,6 +19,26 @@ ...@@ -19,6 +19,26 @@
var times = 4; var times = 4;
function getElementLeft(element) {    
var actualLeft = element.offsetLeft;    
var current = element.offsetParent;    
while (current !== null) {      
actualLeft += current.offsetLeft;      
current = current.offsetParent;    
}    
return actualLeft;  
}  
function getElementTop(element) {    
var actualTop = element.offsetTop;    
var current = element.offsetParent;    
while (current !== null) {      
actualTop += current.offsetTop;      
current = current.offsetParent;    
}    
return actualTop;  
}
//定义 Locker 类 //定义 Locker 类
var Locker = $.Locker = $.Class.extend({ var Locker = $.Locker = $.Class.extend({
R: 26, R: 26,
...@@ -36,6 +56,11 @@ ...@@ -36,6 +56,11 @@
throw "构造 Locker 时缺少容器元素"; throw "构造 Locker 时缺少容器元素";
} }
self.holder = holder; self.holder = holder;
//避免重复初始化开始
if (self.holder.__locker_inited) return;
self.holder.__locker_inited = true;
//避免重复初始化结束
//
self.options = options || {}; self.options = options || {};
self.options.callback = self.options.callback || self.options.done || $.noop; self.options.callback = self.options.callback || self.options.done || $.noop;
self.holder.innerHTML = '<canvas></canvas>'; self.holder.innerHTML = '<canvas></canvas>';
...@@ -52,8 +77,8 @@ ...@@ -52,8 +77,8 @@
// //
if (self.options.width) self.holder.style.width = self.options.width + 'px'; if (self.options.width) self.holder.style.width = self.options.width + 'px';
if (self.options.height) self.holder.style.height = self.options.height + 'px'; if (self.options.height) self.holder.style.height = self.options.height + 'px';
self.CW = self.holder.offsetWidth || self.CW; self.CW = self.options.width || self.holder.offsetWidth || self.CW;
self.CH = self.holder.offsetHeight || self.CH; self.CH = self.options.height || self.holder.offsetHeight || self.CH;
//处理 “宽、高” 等数值, 全部扩大 times 倍 //处理 “宽、高” 等数值, 全部扩大 times 倍
self.R *= times; self.R *= times;
self.CW *= times; self.CW *= times;
...@@ -69,7 +94,11 @@ ...@@ -69,7 +94,11 @@
var Y = (self.CH - 2 * self.OffsetY - self.R * 2 * 3) / 2; var Y = (self.CH - 2 * self.OffsetY - self.R * 2 * 3) / 2;
self.pointLocationArr = self.caculateNinePointLotion(X, Y); self.pointLocationArr = self.caculateNinePointLotion(X, Y);
self.initEvent(canvas, cxt, self.holder); self.initEvent(canvas, cxt, self.holder);
//console.log(X);
self.draw(cxt, self.pointLocationArr, [], null); self.draw(cxt, self.pointLocationArr, [], null);
setTimeout(function() {
self.draw(cxt, self.pointLocationArr, [], null);
}, 0);
}, },
/** /**
...@@ -161,8 +190,8 @@ ...@@ -161,8 +190,8 @@
//start //start
self._startHandler = function(e) { self._startHandler = function(e) {
e.point = event.changedTouches ? event.changedTouches[0] : event; e.point = event.changedTouches ? event.changedTouches[0] : event;
e.point.elementX = (e.point.pageX - holder.offsetLeft) * times; e.point.elementX = (e.point.pageX - getElementLeft(holder)) * times;
e.point.elementY = (e.point.pageY - holder.offsetTop) * times; e.point.elementY = (e.point.pageY - getElementTop(holder)) * times;
self.isPointSelect(e.point, linePoint); self.isPointSelect(e.point, linePoint);
isDown = true; isDown = true;
}; };
...@@ -172,8 +201,8 @@ ...@@ -172,8 +201,8 @@
if (!isDown) return; if (!isDown) return;
e.preventDefault(); e.preventDefault();
e.point = event.changedTouches ? event.changedTouches[0] : event; e.point = event.changedTouches ? event.changedTouches[0] : event;
e.point.elementX = (e.point.pageX - holder.offsetLeft) * times; e.point.elementX = (e.point.pageX - getElementLeft(holder)) * times;
e.point.elementY = (e.point.pageY - holder.offsetTop) * times; e.point.elementY = (e.point.pageY - getElementTop(holder)) * times;
var touches = e.point; var touches = e.point;
self.isPointSelect(touches, linePoint); self.isPointSelect(touches, linePoint);
cxt.clearRect(0, 0, self.CW, self.CH); cxt.clearRect(0, 0, self.CW, self.CH);
...@@ -186,8 +215,8 @@ ...@@ -186,8 +215,8 @@
//end //end
self._endHandler = function(e) { self._endHandler = function(e) {
e.point = event.changedTouches ? event.changedTouches[0] : event; e.point = event.changedTouches ? event.changedTouches[0] : event;
e.point.elementX = (e.point.pageX - holder.offsetLeft) * times; e.point.elementX = (e.point.pageX - getElementLeft(holder)) * times;
e.point.elementY = (e.point.pageY - holder.offsetTop) * times; e.point.elementY = (e.point.pageY - getElementTop(holder)) * times;
cxt.clearRect(0, 0, self.CW, self.CH); cxt.clearRect(0, 0, self.CW, self.CH);
self.draw(cxt, self.pointLocationArr, linePoint, null); self.draw(cxt, self.pointLocationArr, linePoint, null);
//事件数据 //事件数据
...@@ -265,10 +294,11 @@ ...@@ -265,10 +294,11 @@
}; };
//自动处理 class='mui-locker' 的 dom //自动处理 class='mui-locker' 的 dom
try {
$('.' + lockerClassName).locker();
} catch (ex) {}
$.ready(function() { $.ready(function() {
setTimeout(function() {
$('.' + lockerClassName).locker(); $('.' + lockerClassName).locker();
}, 350);
}); });
}(mui, document)); }(mui, document));
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
/**
* <div id="app" class="mui-views">
<div class="mui-view">
<div class="mui-navbar">
</div>
<div class="mui-pages">
</div>
</div>
</div>
* @param {Object} $
* @param {Object} window
*/
(function($, window) {
var CLASS_LEFT = $.className('left');
var CLASS_CENTER = $.className('center');
var CLASS_RIGHT = $.className('right');
var CLASS_PAGE = $.className('page');
var CLASS_PAGE_LEFT = $.className('page-left');
var CLASS_PAGE_CENTER = $.className('page-center');
var CLASS_NAVBAR_LEFT = $.className('navbar-left');
var CLASS_NAVBAR_CENTER = $.className('navbar-center');
var CLASS_PAGE_SHADOW = $.className('page-shadow');
var CLASS_TRANSITIONING = $.className('transitioning');
var SELECTOR_LEFT = '.' + CLASS_LEFT;
var SELECTOR_CENTER = '.' + CLASS_CENTER;
var SELECTOR_RIGHT = '.' + CLASS_RIGHT;
var SELECTOR_ICON = $.classSelector('.icon');
var SELECTOR_NAVBAR = $.classSelector('.navbar');
var SELECTOR_NAVBAR_INNER = $.classSelector('.navbar-inner');
var SELECTOR_PAGES = $.classSelector('.pages');
var SELECTOR_BTN_NAV = $.classSelector('.btn-nav');
var SELECTOR_PAGE_LEFT = '.' + CLASS_PAGE_LEFT;
var SELECTOR_PAGE_CENTER = '.' + CLASS_PAGE_CENTER;
var SELECTOR_NAVBAR_LEFT = '.' + CLASS_NAVBAR_LEFT;
var SELECTOR_NAVBAR_CENTER = '.' + CLASS_NAVBAR_CENTER;
var View = $.Class.extend({
init: function(element, options) {
this.view = this.element = element;
this.options = $.extend({
animateNavbar: true,
swipeBackPageActiveArea: 30,
hardwareAccelerated: true
}, options);
this.navbars = this.view.querySelector(SELECTOR_NAVBAR);
this.pages = this.view.querySelector(SELECTOR_PAGES);
this.history = []; //history
this.maxScrollX = this.view.offsetWidth;
this.x = this.y = 0;
this.translateZ = this.options.hardwareAccelerated ? ' translateZ(0)' : '';
this.ratio = 0;
this.isBack = true;
this.moved = this.dragging = false;
this.activeNavbar = this.previousNavbar = null;
this.activePage = this.previousPage = null;
this._initPageEventMethod();
this._initDefaultPage();
this._initNavBar();
this.initEvent();
},
_initPageEventMethod: function() {
var self = this;
$.each(['onPageBeforeShow', 'onPageShow', 'onPageBeforeBack', 'onPageBack'], function(index, event) {
self[event + 'Callbacks'] = {};
self[event] = function(page, callback) {
var eventCallbacks = event + 'Callbacks';
if (!self[eventCallbacks].hasOwnProperty(page)) {
self[eventCallbacks][page] = [callback];
} else {
self[eventCallbacks][page].push(callback);
}
};
});
},
_initDefaultPage: function() {
var defaultPage = document.querySelector(this.options.defaultPage);
if (defaultPage) {
this._appendPage(defaultPage);
} else {
throw new Error('defaultPage[' + this.options.defaultPage + '] does not exist');
}
},
initEvent: function() {
this.view.addEventListener('click', this);
this.view.addEventListener('tap', this);
this.pages.addEventListener('drag', this);
this.pages.addEventListener('dragend', this);
this.pages.addEventListener('webkitTransitionEnd', this);
},
handleEvent: function(event) {
switch (event.type) {
case 'click':
this._click(event);
break;
case 'tap':
this._tap(event);
break;
case 'drag':
this._drag(event);
break;
case 'dragend':
this._dragend(event);
break;
case 'webkitTransitionEnd':
this._webkitTransitionEnd(event);
break;
}
},
shadow: function() {
var shadow = document.createElement('div');
shadow.className = CLASS_PAGE_SHADOW;
return shadow;
}(),
_removePage: function(page, navbar) {
this._removeNavbar(page, navbar);
document.body.appendChild(page);
this._cleanPageClass(page);
},
_prependPage: function(page) {
var navbar = page.querySelector(SELECTOR_NAVBAR_INNER);
this._prependNavbar(navbar);
page.classList.add(CLASS_PAGE_LEFT);
this.pages.insertBefore(page, this.pages.firstElementChild);
},
_appendPage: function(page) {
var navbar = page.querySelector(SELECTOR_NAVBAR_INNER);
this._appendNavbar(navbar);
page.classList.add(CLASS_PAGE_CENTER);
this.pages.appendChild(page);
},
_removeNavbar: function(page, navbar) {
page.insertBefore(navbar, page.firstElementChild);
this._cleanNavbarClass(navbar);
},
_prependNavbar: function(navbar) {
navbar.classList.add(CLASS_NAVBAR_LEFT);
this.navbars.insertBefore(navbar, this.navbars.firstElementChild);
},
_appendNavbar: function(navbar) {
navbar.classList.add(CLASS_NAVBAR_CENTER);
this.navbars.appendChild(navbar);
},
_cleanPageClass: function(page) {
page.classList.remove(CLASS_PAGE_CENTER);
page.classList.remove(CLASS_PAGE_LEFT);
},
_cleanNavbarClass: function(navbar) {
navbar.classList.remove(CLASS_NAVBAR_CENTER);
navbar.classList.remove(CLASS_NAVBAR_LEFT);
},
_tap: function(event) {
var target = event.target;
for (; target && target !== document; target = target.parentNode) {
if (target.tagName === 'A' && target.hash) {
var page = document.getElementById(target.hash.replace('#', ''));
if (page && page.classList.contains(CLASS_PAGE)) {
event.stopPropagation();
event.detail.gesture.preventDefault();
this.go(target.hash);
break;
}
}
}
},
_click: function(event) {
var target = event.target;
for (; target && target !== document; target = target.parentNode) {
if (target.tagName === 'A' && target.hash) {
var page = document.getElementById(target.hash.replace('#', ''));
if (page && page.classList.contains(CLASS_PAGE)) {
event.preventDefault();
break;
}
}
}
},
_cleanStyle: function(el) {
if (el) {
el.style.webkitTransform = '';
el.style.opacity = '';
}
},
_webkitTransitionEnd: function(event) {
this.dragging = this.moved = false;
if (this.activePage !== event.target) {
return;
}
this.isInTransition = false;
this.shadow.parentNode === this.activePage && this.activePage.removeChild(this.shadow);
this.previousPageClassList.remove(CLASS_TRANSITIONING);
this.activePageClassList.remove(CLASS_TRANSITIONING);
var self = this;
if ($.os.ios && this.options.animateNavbar && this.previousNavElements && this.activeNavElements) {
var isBack = this.isBack;
$.each(this.previousNavElements, function(i, el) {
el.classList.remove(CLASS_TRANSITIONING);
isBack && self._cleanStyle(el);
});
$.each(this.activeNavElements, function(i, el) {
el.classList.remove(CLASS_TRANSITIONING);
self._cleanStyle(el);
});
if (this.previousNavBackIcon) {
this.previousNavBackIcon.classList.remove(CLASS_TRANSITIONING);
isBack && this._cleanStyle(this.previousNavBackIcon);
}
if (this.activeNavBackIcon) {
this.activeNavBackIcon.classList.remove(CLASS_TRANSITIONING);
this._cleanStyle(this.activeNavBackIcon);
}
} else {
this.previousNavbar.classList.remove(CLASS_TRANSITIONING);
this.activeNavbar.classList.remove(CLASS_TRANSITIONING);
this._cleanStyle(this.previousNavbar);
this._cleanStyle(this.activeNavbar);
}
this._cleanStyle(this.previousPage);
this._cleanStyle(this.activePage);
if (this.ratio <= 0.5) {
return;
}
if (this.isBack) {
this._removePage(this.activePage, this.activeNavbar);
this.previousPageClassList.remove(CLASS_PAGE_LEFT);
this.previousPageClassList.add(CLASS_PAGE_CENTER);
this.previousNavbar.classList.remove(CLASS_NAVBAR_LEFT);
this.previousNavbar.classList.add(CLASS_NAVBAR_CENTER);
if (this.history.length > 0) {
this._prependPage(this.history.pop());
}
this._initNavBar();
this._trigger('pageBack', this.activePage);
this._trigger('pageShow', this.previousPage);
} else {
this.previousPageClassList.add(CLASS_PAGE_LEFT);
this.activePageClassList.add(CLASS_PAGE_CENTER);
this._trigger('pageShow', this.activePage);
}
},
_trigger: function(eventType, page) {
var eventCallbacks = 'on' + eventType.charAt(0).toUpperCase() + eventType.slice(1) + 'Callbacks';
if (this[eventCallbacks].hasOwnProperty(page.id)) {
var callbacks = this[eventCallbacks][page.id];
var event = new CustomEvent(eventType, {
detail: {
page: page
},
bubbles: true,
cancelable: true
});
for (var len = callbacks.length; len--;) {
callbacks[len].apply(this, event);
}
}
$.trigger(this.view, eventType, {
page: page
});
},
_initPageTransform: function() {
this.previousPage = this.pages.querySelector(SELECTOR_PAGE_LEFT);
this.activePage = this.pages.querySelector(SELECTOR_PAGE_CENTER);
if (this.previousPage && this.activePage) {
this.activePage.appendChild(this.shadow);
this.previousPageClassList = this.previousPage.classList;
this.activePageClassList = this.activePage.classList;
this.previousPageStyle = this.previousPage.style;
this.activePageStyle = this.activePage.style;
this.previousPageClassList.remove(CLASS_TRANSITIONING);
this.activePageClassList.remove(CLASS_TRANSITIONING);
if (this.options.animateNavbar && this.navbars) {
this.previousNavbar = this.navbars.querySelector(SELECTOR_NAVBAR_LEFT);
this.activeNavbar = this.navbars.querySelector(SELECTOR_NAVBAR_CENTER);
if (this.previousNavbar && this.activeNavbar) {
this.previousNavElements = this.previousNavbar.querySelectorAll(SELECTOR_LEFT + ',' + SELECTOR_CENTER + ',' + SELECTOR_RIGHT);
this.activeNavElements = this.activeNavbar.querySelectorAll(SELECTOR_LEFT + ',' + SELECTOR_CENTER + ',' + SELECTOR_RIGHT);
this.previousNavBackIcon = this.previousNavbar.querySelector(SELECTOR_LEFT + SELECTOR_BTN_NAV + ' ' + SELECTOR_ICON);
this.activeNavBackIcon = this.activeNavbar.querySelector(SELECTOR_LEFT + SELECTOR_BTN_NAV + ' ' + SELECTOR_ICON);
}
}
this.x = 0;
this.dragging = true;
return true;
}
return false;
},
_initNavBar: function() {
if (this.options.animateNavbar && this.navbars) {
var inners = this.navbars.querySelectorAll(SELECTOR_NAVBAR_INNER);
var inner, left, right, center, leftWidth, rightWidth, centerWidth, noLeft, onRight, currLeft, diff, navbarWidth;
for (var i = 0, len = inners.length; i < len; i++) {
inner = inners[i];
left = inner.querySelector(SELECTOR_LEFT);
right = inner.querySelector(SELECTOR_RIGHT);
center = inner.querySelector(SELECTOR_CENTER);
noLeft = !left;
noRight = !right;
leftWidth = noLeft ? 0 : left.offsetWidth;
rightWidth = noRight ? 0 : right.offsetWidth;
centerWidth = center ? center.offsetWidth : 0;
navbarWidth = this.maxScrollX;
onLeft = inner.classList.contains('navbar-left');
if (noRight) {
currLeft = navbarWidth - centerWidth;
}
if (noLeft) {
currLeft = 0;
}
if (!noLeft && !noRight) {
currLeft = (navbarWidth - rightWidth - centerWidth + leftWidth) / 2;
}
var requiredLeft = (navbarWidth - centerWidth) / 2;
if (navbarWidth - leftWidth - rightWidth > centerWidth) {
if (requiredLeft < leftWidth) {
requiredLeft = leftWidth;
}
if (requiredLeft + centerWidth > navbarWidth - rightWidth) {
requiredLeft = navbarWidth - rightWidth - centerWidth;
}
diff = requiredLeft - currLeft;
} else {
diff = 0;
}
var centerLeft = diff;
if (center) {
center.style.marginLeft = -leftWidth + 'px';
center.mNavbarLeftOffset = -(currLeft + diff) + 30; //这个30是测出来的。后续要实际计算一下
center.mNavbarRightOffset = navbarWidth - currLeft - diff - centerWidth;
}
if (onLeft) center.style.webkitTransform = ('translate3d(' + center.mNavbarLeftOffset + 'px, 0, 0)');
if (!noLeft) {
left.mNavbarLeftOffset = -leftWidth;
left.mNavbarRightOffset = (navbarWidth - leftWidth) / 2;
if (onLeft) left.style.webkitTransform = ('translate3d(' + left[0].mNavbarLeftOffset + 'px, 0, 0)');
}
if (!noRight) {
right.mNavbarLeftOffset = -(navbarWidth - rightWidth) / 2;
right.mNavbarRightOffset = rightWidth;
if (onLeft) right.style.webkitTransform = ('translate3d(' + right[0].mNavbarLeftOffset + 'px, 0, 0)');
}
}
}
},
_drag: function(event) {
if (this.isInTransition) {
return;
}
var detail = event.detail;
if (!this.dragging) {
if ((detail.start.x - this.view.offsetLeft) < this.options.swipeBackPageActiveArea) {
this.isBack = true;
this._initPageTransform();
}
}
if (this.dragging) {
var deltaX = 0;
if (!this.moved) { //start
deltaX = detail.deltaX;
$.gestures.touch.lockDirection = true; //锁定方向
$.gestures.touch.startDirection = detail.direction;
} else { //move
deltaX = detail.deltaX - detail.lastDeltaX;
}
var newX = this.x + deltaX;
if (newX < 0 || newX > this.maxScrollX) {
newX = newX < 0 ? 0 : this.maxScrollX;
}
event.stopPropagation();
detail.gesture.preventDefault();
if (!this.requestAnimationFrame) {
this._updateTranslate();
}
this.moved = true;
this.x = newX;
this.y = 0;
}
},
_dragend: function(event) {
if (!this.moved) {
return;
}
event.stopPropagation();
var detail = event.detail;
this._clearRequestAnimationFrame();
this._prepareTransition();
this.ratio = this.x / this.maxScrollX;
if (this.ratio === 1 || this.ratio === 0) {
$.trigger(this.activePage, 'webkitTransitionEnd');
return;
}
if (this.ratio > 0.5) {
this.setTranslate(this.maxScrollX, 0);
} else {
this._cleanStyle(this.previousPage);
this._cleanStyle(this.activePage);
}
},
_prepareTransition: function() {
this.isInTransition = true;
this.previousPageClassList.add(CLASS_TRANSITIONING);
this.activePageClassList.add(CLASS_TRANSITIONING);
var self = this;
if (this.options.animateNavbar && this.previousNavElements && this.activeNavElements) {
this.previousNavbar.classList.add(CLASS_TRANSITIONING);
this.activeNavbar.classList.add(CLASS_TRANSITIONING);
$.each(this.previousNavElements, function(i, el) {
el.classList.add(CLASS_TRANSITIONING);
self._cleanStyle(el);
});
$.each(this.activeNavElements, function(i, el) {
el.classList.add(CLASS_TRANSITIONING);
self._cleanStyle(el);
});
if (this.previousNavBackIcon) {
this._cleanStyle(this.previousNavBackIcon);
this.previousNavBackIcon.classList.add(CLASS_TRANSITIONING);
}
if (this.activeNavBackIcon) {
this._cleanStyle(this.activeNavBackIcon);
this.activeNavBackIcon.classList.add(CLASS_TRANSITIONING);
}
}
},
_clearRequestAnimationFrame: function() {
if (this.requestAnimationFrame) {
cancelAnimationFrame(this.requestAnimationFrame);
this.requestAnimationFrame = null;
}
},
_getTranslateStr: function(x, y) {
if (this.options.hardwareAccelerated) {
return 'translate3d(' + x + 'px,' + y + 'px,0px) ' + this.translateZ;
}
return 'translate(' + x + 'px,' + y + 'px) ';
},
_updateTranslate: function() {
var self = this;
if (self.x !== self.lastX || self.y !== self.lastY) {
self.setTranslate(self.x, self.y);
}
self.requestAnimationFrame = requestAnimationFrame(function() {
self._updateTranslate();
});
},
_setNavbarTranslate: function(x, y) {
var percentage = x / this.maxScrollX;
//only for ios
if ($.os.ios && this.options.animateNavbar && this.previousNavElements && this.activeNavElements) {
var i, len, style, el;
for (i = 0, len = this.activeNavElements.length; i < len; i++) {
el = this.activeNavElements[i];
style = el.style;
style.opacity = (1 - percentage * (el.classList.contains(CLASS_LEFT) ? 3.5 : 1.3));
if (!el.classList.contains(CLASS_RIGHT)) {
var activeNavTranslate = percentage * el.mNavbarRightOffset;
el.style.webkitTransform = ('translate3d(' + activeNavTranslate + 'px,0,0)');
if (el.classList.contains(CLASS_LEFT) && this.activeNavBackIcon) {
this.activeNavBackIcon.style.webkitTransform = ('translate3d(' + -activeNavTranslate + 'px,0,0)');
}
}
}
for (i = 0, len = this.previousNavElements.length; i < len; i++) {
el = this.previousNavElements[i];
style = el.style;
style.opacity = percentage * 1.3 - 0.3;
if (!el.classList.contains(CLASS_RIGHT)) {
var previousNavTranslate = el.mNavbarLeftOffset * (1 - percentage);
el.style.webkitTransform = ('translate3d(' + previousNavTranslate + 'px,0,0)');
if (el.classList.contains(CLASS_LEFT) && this.previousNavBackIcon) {
this.previousNavBackIcon.style.webkitTransform = ('translate3d(' + -previousNavTranslate + 'px,0,0)');
}
}
}
} else {
this.activeNavbar.style.opacity = 1 - percentage * 1.3;
this.previousNavbar.style.opacity = percentage * 1.3 - 0.3;
}
},
setTranslate: function(x, y) {
this.x = x;
this.y = y;
this.previousPage.style.opacity = 0.9 + 0.1 * x / this.maxScrollX;
if ($.os.ios) { //only for ios
this.previousPage.style['webkitTransform'] = this._getTranslateStr((x / 5 - this.maxScrollX / 5), y);
}
this.activePage.style['webkitTransform'] = this._getTranslateStr(x, y);
if (this.options.animateNavbar) {
this._setNavbarTranslate(x, y);
}
this.lastX = this.x;
this.lastY = this.y;
},
canBack: function() {
return this.pages.querySelector(SELECTOR_PAGE_LEFT);
},
back: function() {
if (this.isInTransition) {
return;
}
this.isBack = true;
this.ratio = 1;
if (this._initPageTransform()) {
this._trigger('pageBeforeBack', this.activePage);
this._trigger('pageBeforeShow', this.previousPage);
this._prepareTransition();
this.previousPage.offsetHeight;
this.activePage.offsetHeight;
this.setTranslate(this.maxScrollX, 0);
}
},
go: function(pageSelector) {
if (this.isInTransition) {
return;
}
var nextPage = document.querySelector(pageSelector);
if (nextPage) {
var nextNavbar = nextPage.querySelector(SELECTOR_NAVBAR_INNER);
var previousNavbar = this.navbars.querySelector(SELECTOR_NAVBAR_LEFT);
var activeNavbar = this.navbars.querySelector(SELECTOR_NAVBAR_CENTER);
var previousPage = this.pages.querySelector(SELECTOR_PAGE_LEFT);
var activePage = this.pages.querySelector(SELECTOR_PAGE_CENTER);
if (previousNavbar && previousPage) {
this._removePage(previousPage, previousNavbar);
this.history.push(previousPage); //add to history
}
if (activeNavbar) {
activeNavbar.classList.remove(CLASS_NAVBAR_CENTER);
activeNavbar.classList.add(CLASS_NAVBAR_LEFT);
}
if (activePage) {
activePage.classList.remove(CLASS_PAGE_CENTER);
activePage.style.webkitTransform = 'translate3d(0,0,0)';
activePage.classList.add(CLASS_PAGE_LEFT);
}
nextPage.style.webkitTransform = 'translate3d(100%,0,0)';
this._appendPage(nextPage);
nextPage.appendChild(this.shadow); //shadow
nextPage.offsetHeight; //force
this.isBack = false;
this.ratio = 1;
this._initPageTransform();
this._initNavBar();
this._setNavbarTranslate(this.maxScrollX, 0);
//force
this.previousPage.offsetHeight;
this.activePage.offsetHeight;
this.previousNavbar.offsetHeight;
this.activeNavbar.offsetHeight;
this._trigger('pageBeforeShow', this.activePage);
this._prepareTransition();
this.setTranslate(0, 0);
}
}
});
$.fn.view = function(options) {
var self = this[0];
var viewApi = null;
var id = self.getAttribute('data-view');
if (!id) {
id = ++$.uuid;
$.data[id] = viewApi = new View(self, options);
} else {
viewApi = $.data[id];
}
return viewApi;
}
})(mui, window);
\ No newline at end of file
...@@ -8,90 +8,86 @@ ...@@ -8,90 +8,86 @@
<link href="css/mui.min.css" rel="stylesheet" /> <link href="css/mui.min.css" rel="stylesheet" />
<link href="css/style.css" rel="stylesheet" /> <link href="css/style.css" rel="stylesheet" />
<style> <style>
html, .area {
body { margin: 20px auto 0px auto;
height: 100%;
overflow: hidden;
margin: 0px;
padding: 0px;
background-color: #efeff4;
}
.ui-logo {
width: 100px;
height: 100px;
margin: 60px auto 25px auto;
background-image: url(images/user-photo.png);
background-position: center center;
background-repeat: no-repeat;
background-size: 100% 100%;
border-radius: 60px;
} }
.mui-content-padded { .mui-input-group {
margin-top: 10px;
}
.mui-input-group:first-child {
margin-top: 20px; margin-top: 20px;
} }
.ui-login-form { .mui-input-group label {
border: solid 1px #ddd; width: 22%;
border-radius: 5px;
margin: 10px;
overflow: hidden;
background-color: #ddd;
} }
.ui-login-form input { .mui-input-row label~input,
border: none; .mui-input-row label~select,
margin: 0px; .mui-input-row label~textarea {
font-size: 18px; width: 78%;
padding: 15px !important;
border-radius: 0px;
height: auto;
} }
.ui-login-form input:first-child { .mui-checkbox input[type=checkbox],
margin-bottom: 1px; .mui-radio input[type=radio] {
top: 6px;
} }
.mui-btn-block { .mui-content-padded {
padding: 12px 0px; margin-top: 25px;
} }
#reg { .mui-btn {
padding: 10px;
}
.link-area {
display: block; display: block;
margin-top: 45px; margin-top: 25px;
text-align: center; text-align: center;
} }
.mui-checkbox label { .spliter {
display: inline-block; color: #bbb;
width: auto; padding: 0px 8px;
vertical-align: text-bottom; }
padding: 2px 0px; /*
color: #777; #forgetPassword {
}
.mui-checkbox input {
position: relative !important;
top: auto!important;
left: auto!important;
right: auto!important;
bottom: auto!important;
margin: 0px;
padding: 0px;
vertical-align: text-bottom;
}
.mui-checkbox {
margin: 3px 10px;
} }
#reg {
position: absolute;
bottom: 30px;
left: 50%;
width: 80px;
margin-left: -40px;
background-color: #f5f5f5;
}*/
</style> </style>
</head> </head>
<body> <body>
<header class="mui-bar mui-bar-nav">
<h1 class="mui-title">登录</h1>
</header>
<div class="mui-content"> <div class="mui-content">
<div class="ui-logo"></div> <form class="mui-input-group">
<form class="ui-login-form"> <div class="mui-input-row">
<input id='account' type="text" class="mui-input-clear mui-input" placeholder="账号"> <label>账号</label>
<input id='password' type="password" class="mui-input-clear mui-input" placeholder="密码"> <input id='account' type="text" class="mui-input-clear mui-input" placeholder="请输入账号">
</div>
<div class="mui-input-row">
<label>密码</label>
<input id='password' type="password" class="mui-input-clear mui-input" placeholder="请输入密码">
</div>
</form> </form>
<div class="mui-checkbox"> <form class="mui-input-group">
<input class="mui-checkbox" id='autoLogin' name="checkbox" type="checkbox"> <ul class="mui-table-view mui-table-view-chevron">
<label>记住我的状态</label> <li class="mui-table-view-cell">
自动登录
<div id="autoLogin" class="mui-switch">
<div class="mui-switch-handle"></div>
</div> </div>
</li>
</ul>
</form>
<div class="mui-content-padded"> <div class="mui-content-padded">
<button id='login' class="mui-btn mui-btn-block mui-btn-primary">登录</button> <button id='login' class="mui-btn mui-btn-block mui-btn-primary">登录</button>
<a id='reg'>注册新用户</a> <div class="link-area"><a id='reg'>注册账号</a> <span class="spliter">|</span> <a id='forgetPassword'>忘记密码</a>
</div>
</div> </div>
</div> </div>
<script src="js/mui.min.js"></script> <script src="js/mui.min.js"></script>
...@@ -101,11 +97,42 @@ ...@@ -101,11 +97,42 @@
$.init(); $.init();
$.plusReady(function() { $.plusReady(function() {
var settings = app.getSettings(); var settings = app.getSettings();
var loginButton = doc.querySelector('#login'); var state = app.getState();
var accountBox = doc.querySelector('#account'); //检查 "登录状态/锁屏状态" 开始
var passwordBox = doc.querySelector('#password'); if (settings.autoLogin && state.token && settings.gestures) {
var autoLoginButton = doc.querySelector("#autoLogin"); $.openWindow({
var regButton = doc.querySelector('#reg'); url: 'unlock.html',
id: 'unlock',
show: {
aniShow: 'pop-in'
},
waiting: {
autoShow: false
}
});
} else if (settings.autoLogin && state.token) {
$.openWindow({
url: 'main.html',
id: 'main',
show: {
aniShow: 'pop-in'
},
waiting: {
autoShow: false
}
});
}
setTimeout(function() {
//关闭 splash
plus.navigator.closeSplashscreen();
}, 600);
//检查 "登录状态/锁屏状态" 结束
var loginButton = doc.getElementById('login');
var accountBox = doc.getElementById('account');
var passwordBox = doc.getElementById('password');
var autoLoginButton = doc.getElementById("autoLogin");
var regButton = doc.getElementById('reg');
var forgetButton = doc.getElementById('forgetPassword');
loginButton.addEventListener('tap', function(event) { loginButton.addEventListener('tap', function(event) {
var loginInfo = { var loginInfo = {
account: accountBox.value, account: accountBox.value,
...@@ -118,23 +145,54 @@ ...@@ -118,23 +145,54 @@
} }
$.openWindow({ $.openWindow({
url: 'main.html', url: 'main.html',
id: 'main' id: 'main',
show: {
aniShow: 'pop-in'
},
waiting: {
autoShow: false
}
}); });
}); });
}); });
autoLoginButton.checked = settings.autoLogin; autoLoginButton.classList[settings.autoLogin ? 'add' : 'remove']('mui-active')
autoLoginButton.addEventListener('change', function(event) { autoLoginButton.addEventListener('toggle', function(event) {
setTimeout(function() { setTimeout(function() {
settings.autoLogin = autoLoginButton.checked; var isActive = event.detail.isActive;
settings.autoLogin = isActive;
app.setSettings(settings); app.setSettings(settings);
}, 50); }, 50);
}, false); }, false);
regButton.addEventListener('tap', function(event) { regButton.addEventListener('tap', function(event) {
$.openWindow({ $.openWindow({
url: 'reg.html', url: 'reg.html',
id: 'reg' id: 'reg',
show: {
aniShow: 'pop-in'
},
waiting: {
autoShow: false
}
}); });
}, false); }, false);
forgetButton.addEventListener('tap', function(event) {
$.openWindow({
url: 'forget_password.html',
id: 'forget_password',
show: {
aniShow: 'pop-in'
},
waiting: {
autoShow: false
}
});
}, false);
/*
window.addEventListener('resize', function() {
setTimeout(function() {
regButton.style.display = document.body.clientHeight > 400 ? 'block' : 'none';
}, 0);
}, false);*/
var backButtonPress = 0; var backButtonPress = 0;
$.back = function(event) { $.back = function(event) {
backButtonPress++; backButtonPress++;
......
...@@ -12,29 +12,33 @@ ...@@ -12,29 +12,33 @@
font-size: 14px; font-size: 14px;
color: #8f8f94; color: #8f8f94;
} }
.mui-btn-block { .mui-btn {
padding: 12px 0px; padding: 10px;
} }
</style> </style>
</head> </head>
<body> <body>
<header class="mui-bar mui-bar-nav"> <header class="mui-bar mui-bar-nav" style="padding-right: 15px;">
<h1 class="mui-title">主页</h1> <h1 class="mui-title">登录模板</h1>
<button id='setting' class=" mui-pull-right mui-btn-link">设置</button>
</header> </header>
<div class="mui-content"> <div class="mui-content">
<div class="mui-content-padded"> <div class="mui-content-padded">
<p> <p>
您好,您已成功登录。 您好 <span id='account'></span>,您已成功登录。
<ul> <ul>
<li>关闭应用并不会注销当前用户的登录状态。</li> <li>这是mui带登录和设置模板的示例App首页。</li>
<li>注销登录会清除当前用户的登录状态。</li> <li>您可以点击右上角的 “设置” 按钮,进入设置模板,体验div窗体切换示例。</li>
<li>如果登录时您选择了 "记住我的状态",可以在这里设置 "解锁手势图案"。</li> <li>在 “设置” 中点击 “退出” 可以 “注销当前账户” 或 “直接关闭应用”。</li>
<li>你可以设置 “锁屏图案”,这样可通过手势密码代替输入账号、密码;</li>
</ul> </ul>
</p> </p>
<button id='setting' class="mui-btn mui-btn-block mui-btn-primary">设置解锁图案</button> <!--<button class="mui-btn mui-btn-block mui-btn-primary">设置</button>-->
<button id='exit' class="mui-btn mui-btn-block mui-btn-green">关闭应用</button> <!--
<button id='exit' class="mui-btn mui-btn-block mui-btn-green">关闭</button>
<button id='logout' class="mui-btn mui-btn-red mui-btn-block">注销登录</button> <button id='logout' class="mui-btn mui-btn-red mui-btn-block">注销登录</button>
-->
</div> </div>
</div> </div>
<script src="js/mui.min.js"></script> <script src="js/mui.min.js"></script>
...@@ -44,8 +48,12 @@ ...@@ -44,8 +48,12 @@
$.init(); $.init();
$.plusReady(function() { $.plusReady(function() {
var settings = app.getSettings(); var settings = app.getSettings();
var state = app.getState();
var account = doc.getElementById('account');
account.innerText = state.account;
//退出应用 //退出应用
var exitButton = doc.querySelector('#exit'); /*
var exitButton = doc.getElementById('exit');
exitButton.addEventListener('tap', function(event) { exitButton.addEventListener('tap', function(event) {
if (!settings.autoLogin) { if (!settings.autoLogin) {
app.setState({}); app.setState({});
...@@ -53,17 +61,24 @@ ...@@ -53,17 +61,24 @@
plus.runtime.quit(); plus.runtime.quit();
}); });
exitButton.style.display = mui.os.ios ? 'none' : 'block'; exitButton.style.display = mui.os.ios ? 'none' : 'block';
*/
//设置 //设置
var settingButton = doc.querySelector('#setting'); var settingButton = doc.getElementById('setting');
settingButton.style.display = settings.autoLogin ? 'block' : 'none'; //settingButton.style.display = settings.autoLogin ? 'block' : 'none';
settingButton.addEventListener('tap', function(event) { settingButton.addEventListener('tap', function(event) {
$.openWindow({ $.openWindow({
url: 'setting.html', url: 'setting.html',
id: 'setting' id: 'setting',
show: {
aniShow: 'pop-in'
},
waiting: {
autoShow: false
}
}); });
}); });
//注销 //注销
$.oldBack = mui.back; /*
var logoutButton = doc.querySelector('#logout'); var logoutButton = doc.querySelector('#logout');
logoutButton.addEventListener('tap', function(event) { logoutButton.addEventListener('tap', function(event) {
app.setState({}); app.setState({});
...@@ -75,6 +90,8 @@ ...@@ -75,6 +90,8 @@
} }
}); });
}); });
*/
$.oldBack = mui.back;
var backButtonPress = 0; var backButtonPress = 0;
$.back = function(event) { $.back = function(event) {
backButtonPress++; backButtonPress++;
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
"icons": { "icons": {
"72": "icon.png" "72": "icon.png"
}, },
"launch_path": "index.html",/*应用的入口页面,默认为根目录下的index.html;支持网络地址,必须以http://或https://开头*/ "launch_path": "login.html",/*应用的入口页面,默认为根目录下的index.html;支持网络地址,必须以http://或https://开头*/
"developer": { "developer": {
"name": "",/*开发者名称*/ "name": "",/*开发者名称*/
"email": "",/*开发者邮箱地址*/ "email": "",/*开发者邮箱地址*/
......
...@@ -9,21 +9,18 @@ ...@@ -9,21 +9,18 @@
<link href="css/style.css" rel="stylesheet" /> <link href="css/style.css" rel="stylesheet" />
<style> <style>
.area { .area {
margin: 30px auto 0px auto; margin: 20px auto 0px auto;
}
.mui-input-group {
margin-top: 10px;
} }
.mui-input-group:first-child { .mui-input-group:first-child {
margin-top: 30px; margin-top: 20px;
} }
.mui-input-group label { .mui-input-group label {
width: 20%; width: 22%;
} }
.mui-input-row label~input, .mui-input-row label~input,
.mui-input-row label~select, .mui-input-row label~select,
.mui-input-row label~textarea { .mui-input-row label~textarea {
width: 80%; width: 78%;
} }
.mui-checkbox input[type=checkbox], .mui-checkbox input[type=checkbox],
.mui-radio input[type=radio] { .mui-radio input[type=radio] {
...@@ -32,8 +29,8 @@ ...@@ -32,8 +29,8 @@
.mui-content-padded { .mui-content-padded {
margin-top: 25px; margin-top: 25px;
} }
.mui-btn-block { .mui-btn {
padding: 12px 0px; padding: 10px;
} }
</style> </style>
</head> </head>
...@@ -47,15 +44,19 @@ ...@@ -47,15 +44,19 @@
<form class="mui-input-group"> <form class="mui-input-group">
<div class="mui-input-row"> <div class="mui-input-row">
<label>账号</label> <label>账号</label>
<input id='account' type="text" class="mui-input-clear mui-input" placeholder="账号"> <input id='account' type="text" class="mui-input-clear mui-input" placeholder="请输入账号">
</div> </div>
<div class="mui-input-row"> <div class="mui-input-row">
<label>密码</label> <label>密码</label>
<input id='password' type="password" class="mui-input-clear mui-input" placeholder="密码"> <input id='password' type="password" class="mui-input-clear mui-input" placeholder="请输入密码">
</div> </div>
<div class="mui-input-row"> <div class="mui-input-row">
<label>确认</label> <label>确认</label>
<input id='password_confirm' type="password" class="mui-input-clear mui-input" placeholder="密码"> <input id='password_confirm' type="password" class="mui-input-clear mui-input" placeholder="请确认密码">
</div>
<div class="mui-input-row">
<label>邮箱</label>
<input id='email' type="email" class="mui-input-clear mui-input" placeholder="请输入邮箱">
</div> </div>
</form> </form>
<div class="mui-content-padded"> <div class="mui-content-padded">
...@@ -69,14 +70,16 @@ ...@@ -69,14 +70,16 @@
$.init(); $.init();
$.plusReady(function() { $.plusReady(function() {
var settings = app.getSettings(); var settings = app.getSettings();
var regButton = doc.querySelector('#reg'); var regButton = doc.getElementById('reg');
var accountBox = doc.querySelector('#account'); var accountBox = doc.getElementById('account');
var passwordBox = doc.querySelector('#password'); var passwordBox = doc.getElementById('password');
var passwordConfirmBox = doc.querySelector('#password_confirm'); var passwordConfirmBox = doc.getElementById('password_confirm');
var emailBox = doc.getElementById('email');
regButton.addEventListener('tap', function(event) { regButton.addEventListener('tap', function(event) {
var regInfo = { var regInfo = {
account: accountBox.value, account: accountBox.value,
password: passwordBox.value password: passwordBox.value,
email: emailBox.value
}; };
var passwordConfirm = passwordConfirmBox.value; var passwordConfirm = passwordConfirmBox.value;
if (passwordConfirm != regInfo.password) { if (passwordConfirm != regInfo.password) {
...@@ -88,9 +91,13 @@ ...@@ -88,9 +91,13 @@
plus.nativeUI.toast(err); plus.nativeUI.toast(err);
return; return;
} }
plus.nativeUI.toast('注册成功');
$.openWindow({ $.openWindow({
url: 'login.html', url: 'login.html',
id: 'login' id: 'login',
show: {
aniShow: 'pop-in'
}
}); });
}); });
}); });
......
...@@ -3,14 +3,132 @@ ...@@ -3,14 +3,132 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> <title>Hello MUI</title>
<title></title> <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">
<link href="css/mui.min.css" rel="stylesheet" /> <meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<link rel="stylesheet" href="./css/mui.min.css">
<style> <style>
html, html,
body { body {
background-color: #efeff4; background-color: #efeff4;
overflow: hidden; }
.mui-views,
.mui-view,
.mui-pages,
.mui-page,
.mui-page-content {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
width: 100%;
height: 100%;
background-color: #efeff4;
}
.mui-pages {
top: 46px;
height: auto;
}
.mui-scroll-wrapper,
.mui-scroll {
background-color: #efeff4;
}
.mui-page.mui-transitioning {
-webkit-transition: -webkit-transform 200ms ease;
transition: transform 200ms ease;
}
.mui-page-left {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
.mui-ios .mui-page-left {
-webkit-transform: translate3d(-20%, 0, 0);
transform: translate3d(-20%, 0, 0);
}
.mui-navbar {
position: fixed;
right: 0;
left: 0;
z-index: 10;
height: 44px;
background-color: #f7f7f8;
}
.mui-navbar .mui-bar {
position: absolute;
background: transparent;
text-align: center;
}
.mui-android .mui-navbar-inner.mui-navbar-left {
opacity: 0;
}
.mui-ios .mui-navbar-left .mui-left,
.mui-ios .mui-navbar-left .mui-center,
.mui-ios .mui-navbar-left .mui-right {
opacity: 0;
}
.mui-navbar .mui-btn-nav {
-webkit-transition: none;
transition: none;
-webkit-transition-duration: .0s;
transition-duration: .0s;
}
.mui-navbar .mui-bar .mui-title {
display: inline-block;
position: static;
width: auto;
}
.mui-page-shadow {
position: absolute;
right: 100%;
top: 0;
width: 16px;
height: 100%;
z-index: -1;
content: '';
}
.mui-page-shadow {
background: -webkit-linear-gradient(left, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, .01) 50%, rgba(0, 0, 0, .2) 100%);
background: linear-gradient(to right, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, .01) 50%, rgba(0, 0, 0, .2) 100%);
}
.mui-navbar-inner.mui-transitioning,
.mui-navbar-inner .mui-transitioning {
-webkit-transition: opacity 200ms ease, -webkit-transform 200ms ease;
transition: opacity 200ms ease, transform 200ms ease;
}
.mui-page {
display: none;
}
.mui-pages .mui-page {
display: block;
}
.mui-page .mui-table-view:first-child {
margin-top: 15px;
}
.mui-page .mui-table-view:last-child {
margin-bottom: 30px;
}
.mui-table-view {
margin-top: 20px;
}
.mui-table-view:after {
height: 0;
}
.mui-table-view span.mui-pull-right {
color: #999;
}
.mui-table-view-divider {
background-color: #efeff4;
font-size: 14px;
}
.mui-table-view-divider:before,
.mui-table-view-divider:after {
height: 0;
}
.mui-content-padded {
margin: 10px 0px;
} }
.mui-locker { .mui-locker {
margin: 35px auto; margin: 35px auto;
...@@ -20,12 +138,91 @@ ...@@ -20,12 +138,91 @@
</head> </head>
<body> <body>
<header class="mui-bar mui-bar-nav"> <!--页面主结构开始-->
<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a> <div id="app" class="mui-views">
<h1 class="mui-title">设定解锁手势</h1> <div class="mui-view">
</header> <div class="mui-navbar">
<div class="mui-content"> </div>
<div class="mui-content-padded" style="margin: 10px 0px;"> <div class="mui-pages">
</div>
</div>
</div>
<!--页面主结构结束-->
<!--单页面开始-->
<div id="setting" class="mui-page">
<!--页面标题栏开始-->
<div class="mui-navbar-inner mui-bar mui-bar-nav">
<button type="button" class="mui-left mui-action-back mui-btn mui-btn-link mui-btn-nav mui-pull-left">
<span class="mui-icon mui-icon-left-nav"></span>
</button>
<h1 class="mui-center mui-title">设置</h1>
</div>
<!--页面标题栏结束-->
<!--页面主内容区开始-->
<div class="mui-page-content">
<div class="mui-scroll-wrapper">
<div class="mui-scroll">
<ul class="mui-table-view mui-table-view-chevron">
<li class="mui-table-view-cell">
<a id="rate" class="mui-navigate-right">评分鼓励</a>
</li>
<li class="mui-table-view-cell">
<a id="share" class="mui-navigate-right">分享推荐</a>
</li>
<li class="mui-table-view-cell">
<a id="tel" class="mui-navigate-right">客服电话</a>
</li>
</ul>
<ul class="mui-table-view mui-table-view-chevron">
<li class="mui-table-view-cell">
<a href="#lock" class="mui-navigate-right">设置锁屏图案</a>
</li>
</ul>
<ul class="mui-table-view">
<li class="mui-table-view-cell" style="text-align: center;">
<a id='exit'>退出</a>
</li>
</ul>
</div>
</div>
</div>
<!--页面主内容区结束-->
</div>
<div id="notifications_disturb" class="mui-page">
<div class="mui-navbar-inner mui-bar mui-bar-nav">
<button type="button" class="mui-left mui-action-back mui-btn mui-btn-link mui-btn-nav mui-pull-left">
<span class="mui-icon mui-icon-left-nav"></span>新消息通知
</button>
<h1 class="mui-center mui-title">功能消息免打扰</h1>
</div>
<div class="mui-page-content">
<div class="mui-scroll-wrapper">
<div class="mui-scroll">
<ul class="mui-table-view mui-table-view-radio">
<li class="mui-table-view-cell">
<a class="mui-navigate-right">开启</a>
</li>
<li class="mui-table-view-cell">
<a class="mui-navigate-right">只在夜间开启</a>
</li>
<li class="mui-table-view-cell">
<a class="mui-navigate-right">关闭</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div id="lock" class="mui-page">
<div class="mui-navbar-inner mui-bar mui-bar-nav">
<button type="button" class="mui-left mui-action-back mui-btn mui-btn-link mui-btn-nav mui-pull-left">
<span class="mui-icon mui-icon-left-nav"></span>设置
</button>
<h1 class="mui-center mui-title">锁屏图案</h1>
</div>
<div class="mui-page-content">
<div class="mui-content-padded">
<ul class="mui-table-view mui-table-view-chevron"> <ul class="mui-table-view mui-table-view-chevron">
<li class="mui-table-view-cell"> <li class="mui-table-view-cell">
启用状态 启用状态
...@@ -34,20 +231,163 @@ ...@@ -34,20 +231,163 @@
</div> </div>
</li> </li>
</ul> </ul>
<div class="mui-locker" data-locker-options='{"ringColor":"rgba(221,221,221,1)","fillColor":"#ffffff","pointColor":"rgba(0,136,204,1)","lineColor":"rgba(0,136,204,1)"}' data-locker-width='320' data-locker-height='320'> <div class="mui-locker" data-locker-width='320' data-locker-height='320' data-locker-options='{"ringColor":"rgba(221,221,221,1)","fillColor":"#ffffff","pointColor":"rgba(0,136,204,1)","lineColor":"rgba(0,136,204,1)"}'>
</div>
</div> </div>
</div> </div>
</div> </div>
<script src="js/mui.min.js"></script> </body>
<script src="./js/mui.min.js "></script>
<script src="./js/mui.view.js "></script>
<script src="js/mui.locker.js"></script> <script src="js/mui.locker.js"></script>
<script src="js/app.js"></script> <script src="js/app.js"></script>
<script> <script>
mui.init();
//初始化单页view
var viewApi = mui('#app').view({
defaultPage: '#setting'
});
//初始化单页的区域滚动
mui('.mui-scroll-wrapper').scroll();
//分享操作
var shares = {};
mui.plusReady(function() {
plus.share.getServices(function(s) {
if (s && s.length > 0) {
for (var i = 0; i < s.length; i++) {
var t = s[i];
shares[t.id] = t;
}
}
}, function() {
console.log("获取分享服务列表失败");
});
});
//分享链接点击事件
document.getElementById("share").addEventListener('tap', function() {
var ids = [{
id: "weixin",
ex: "WXSceneSession"
}, {
id: "weixin",
ex: "WXSceneTimeline"
}, {
id: "sinaweibo"
}, {
id: "tencentweibo"
}],
bts = [{
title: "发送给微信好友"
}, {
title: "分享到微信朋友圈"
}, {
title: "分享到新浪微博"
}, {
title: "分享到腾讯微博"
}];
if (plus.os.name == "iOS") {
ids.push({
id: "qq"
});
bts.push({
title: "分享到QQ"
});
}
plus.nativeUI.actionSheet({
cancel: "取消",
buttons: bts
}, function(e) {
var i = e.index;
if (i > 0) {
var s_id = ids[i - 1].id;
var share = shares[s_id];
if (share.authenticated) {
shareMessage(share, ids[i - 1].ex);
} else {
share.authorize(function() {
shareMessage(share, ids[i - 1].ex);
}, function(e) {
console.log("认证授权失败:" + e.code + " - " + e.message);
});
}
}
});
});
function shareMessage(share, ex) {
var msg = {
extra: {
scene: ex
}
};
msg.href = "http://www.dcloud.io/hellomui/";
msg.title = "最接近原生APP体验的高性能前端框架";
msg.content = "我正在体验HelloMUI,果然很流畅,基本看不出和原生App的差距";
if (~share.id.indexOf('weibo')) {
msg.content += ";体验地址:http://www.dcloud.io/hellomui/";
}
msg.thumbs = ["_www/images/logo.png"];
share.send(msg, function() {
console.log("分享到\"" + share.description + "\"成功! ");
}, function(e) {
console.log("分享到\"" + share.description + "\"失败: " + e.code + " - " + e.message);
});
}
//去评分
document.getElementById("rate").addEventListener('tap', function() {
if (mui.os.ios) {
location.href = 'https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=682211190&pageNumber=0&sortOrdering=2&type=&mt=8';
} else if (mui.os.android) {
plus.runtime.openURL( "market://details?id=io.dcloud.HelloMUI", function(e){
plus.runtime.openURL( "market://details?id=io.dcloud.HelloMUI", function(e){
mui.alert("360手机助手和应用宝,你一个都没装,暂时无法评分,感谢支持");
}, "com.qihoo.appstore" );
}, "com.tencent.android.qqdownloader" );
}
});
//客服电话
document.getElementById("tel").addEventListener('tap', function() {
plus.device.dial("114");
});
//退出操作******************
document.getElementById('exit').addEventListener('tap', function() {
var btnArray = [{
title: "注销当前账号"
}, {
title: "直接关闭应用"
}];
plus.nativeUI.actionSheet({
cancel: "取消",
buttons: btnArray
}, function(event) {
var index = event.index;
switch (index) {
case 1:
app.setState({});
mui.openWindow({
url: 'login.html',
id: 'login',
show: {
aniShow: 'pop-in'
},
waiting: {
autoShow: false
}
});
break;
case 2:
plus.runtime.quit();
break;
}
});
}, false);
//************************
//锁屏设置
(function($, doc) { (function($, doc) {
$.init(); //$.init();
$.plusReady(function() { $.plusReady(function() {
var settings = app.getSettings(); var settings = app.getSettings();
var lockStateButton = doc.querySelector("#lockState"); var lockStateButton = doc.getElementById("lockState");
var locker = doc.querySelector('.mui-locker'); var locker = doc.querySelector('.mui-locker');
lockStateButton.addEventListener('toggle', function(event) { lockStateButton.addEventListener('toggle', function(event) {
var isActive = event.detail.isActive; var isActive = event.detail.isActive;
...@@ -75,10 +415,7 @@ ...@@ -75,10 +415,7 @@
settings.gestures = record[0]; settings.gestures = record[0];
app.setSettings(settings); app.setSettings(settings);
setTimeout(function() { setTimeout(function() {
$.openWindow({ $.back();
url: 'main.html',
id: 'main'
});
}, 200); }, 200);
} else { } else {
plus.nativeUI.toast('两次手势不一致,请重新设定'); plus.nativeUI.toast('两次手势不一致,请重新设定');
...@@ -92,7 +429,39 @@ ...@@ -92,7 +429,39 @@
}, false); }, false);
}); });
}(mui, document)); }(mui, document));
//********************
var view = viewApi.view;
(function($) {
//处理view的后退与webview后退
var oldBack = $.back;
$.back = function() {
if (viewApi.canBack()) { //如果view可以后退,则执行view的后退
viewApi.back();
} else { //执行webview后退
oldBack();
}
};
//监听页面切换事件方案1,通过view元素监听所有页面切换事件,目前提供pageBeforeShow|pageShow|pageBeforeBack|pageBack四种事件(before事件为动画开始前触发)
//第一个参数为事件名称,第二个参数为事件回调,其中e.detail.page为当前页面的html对象
view.addEventListener('pageBeforeShow', function(e) {
// console.log(e.detail.page.id + ' beforeShow');
});
view.addEventListener('pageShow', function(e) {
if (e.detail.page.id == 'lock') {
var settings = app.getSettings();
if (!settings.autoLogin) {
plus.nativeUI.toast('当前没有启用 “自动登录”,需要在登录时启用 "自动登录",设定的手势锁屏才会升效。');
}
}
// console.log(e.detail.page.id + ' show');
});
view.addEventListener('pageBeforeBack', function(e) {
// console.log(e.detail.page.id + ' beforeBack');
});
view.addEventListener('pageBack', function(e) {
// console.log(e.detail.page.id + ' back');
});
})(mui);
</script> </script>
</body>
</html> </html>
\ No newline at end of file
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
$.init(); $.init();
$.plusReady(function() { $.plusReady(function() {
var settings = app.getSettings(); var settings = app.getSettings();
var forgetButton = doc.querySelector("#forget"); var forgetButton = doc.getElementById("forget");
var locker = doc.querySelector('.mui-locker'); var locker = doc.querySelector('.mui-locker');
forgetButton.addEventListener('tap', function(event) { forgetButton.addEventListener('tap', function(event) {
settings.gestures = ''; settings.gestures = '';
...@@ -53,7 +53,13 @@ ...@@ -53,7 +53,13 @@
app.setState(state); app.setState(state);
$.openWindow({ $.openWindow({
url: 'login.html', url: 'login.html',
id: 'login' id: 'login',
show: {
aniShow: 'pop-in'
},
waiting: {
autoShow: false
}
}); });
}); });
locker.addEventListener('done', function(event) { locker.addEventListener('done', function(event) {
...@@ -61,7 +67,13 @@ ...@@ -61,7 +67,13 @@
if (settings.gestures == rs.points.join('')) { if (settings.gestures == rs.points.join('')) {
$.openWindow({ $.openWindow({
url: 'main.html', url: 'main.html',
id: 'main' id: 'main',
show: {
aniShow: 'pop-in'
},
waiting: {
autoShow: false
}
}); });
rs.sender.clear(); rs.sender.clear();
} else { } else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment