first commit

This commit is contained in:
编码猿
2024-09-27 02:06:13 +08:00
commit 852d94fbb9
36760 changed files with 3274413 additions and 0 deletions

View File

@@ -0,0 +1 @@
499e3d1c-bef5-4f71-8adb-499da89a5146

View File

@@ -0,0 +1 @@
15bd74fb-ad5b-4faf-bb52-6dd71da96ab7

View File

@@ -0,0 +1 @@
31a9ea4e-bbee-40b0-994f-e226d9cb333a

View File

@@ -0,0 +1,50 @@
.aui-fold-active {
background: #f4f4f4;
}
.aui-fold-active .aui-fold-content {
display:block;
}
.aui-fold-content {
position: relative;
display: none;
margin: 12px -15px -12px;
padding-left: 15px;
background: #fff;
}
.aui-fold .aui-arrow-right {
position: relative;
display: block;
overflow: hidden;
margin: -12px -15px;
padding: inherit;
white-space: nowrap;
text-overflow: ellipsis;
color: inherit;
}
.aui-fold-ccontent-full {
margin-left: -15px;
margin-right: -15px;
padding: 0;
width: auto;
}
.aui-fold > .aui-arrow-right:after {
content: "\e661";
}
.aui-fold-active > .aui-arrow-right:after{
content: "\e6de"
}
.aui-fold-content .aui-list-view,
.aui-fold-content .aui-user-view {
margin-bottom: 0;
}
.aui-fold-content .aui-list-view:after,
.aui-fold-content .aui-user-view:after,
.aui-fold-content .aui-input-row:first-child:after {
border-top: 0;
}
.aui-fold-content .aui-list-view-cell:last-child:after,
.aui-fold-content .aui-user-view-cell:last-child:after,
.aui-fold-content .aui-input-row:last-child:after,
.aui-fold-content .aui-btn-row:last-child:after {
border-bottom: 0;
}

View File

@@ -0,0 +1,272 @@
/*
* =========================================================================
* APIClud - AUI UI 框架 流浪男 QQ343757327 http://www.auicss.com
* Verson 1.0
* =========================================================================
*/
@charset "UTF-8";
html{
font-family: "Helvetica Neue", Helvetica, sans-serif;
font-size: 20px;
}
html,body {
-webkit-touch-callout:none;
-webkit-text-size-adjust:none;
-webkit-tap-highlight-color:rgba(0, 0, 0, 0);
-webkit-user-select:none;
width: 100%;
}
body {
line-height: 1.5;
font-size: 0.8rem;
color: #212121;
background-color: #f5f5f5;
outline: 0;
}
html,body,header,section,footer,div,ul,ol,li,img,a,span,em,del,legend,center,strong,var,fieldset,form,label,dl,dt,dd,cite,input,hr,time,mark,code,figcaption,figure,textarea,h1,h2,h3,h4,h5,h6,p{
margin:0;
border:0;
padding:0;
font-style:normal;
}
* {
-webkit-box-sizing: border-box;
box-sizing: border-box;
-webkit-user-select: none;
-webkit-tap-highlight-color: transparent;
outline: none;
}
@media only screen and (min-width: 400px) {
html {
font-size: 21.33333333px !important;
}
}
@media only screen and (min-width: 414px) {
html {
font-size: 21px !important;
}
}
@media only screen and (min-width: 480px) {
html {
font-size: 25.6px !important;
}
}
.aui-flex-col,
.aui-flex-row {
display: -webkit-box;
display: -webkit-flex;
display: flex;
-webkit-flex-wrap: wrap;
flex-wrap: wrap;
}
.aui-flex-col:before,
.aui-flex-row:before,
.aui-flex-col:after,
.aui-flex-row:after {
content: " ";
display: -webkit-box;
display: -webkit-flex;
display: flex;
box-sizing: border-box;
}
.aui-flex-col:after,
.aui-flex-row:after {
clear: both;
}
.aui-flex-col {
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-webkit-flex-direction: row;
flex-direction: row;
}
.aui-flex-row {
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-webkit-flex-direction: column;
flex-direction: column;
}
/*栅格*/
.aui-flex-item-1 {
float: left;
width: 8.33333333%;
}
.aui-flex-offset-1 {
margin-left: 8.33333333%;
}
.aui-flex-item-2 {
float: left;
width: 16.66666667%;
}
.aui-flex-offset-2 {
margin-left: 16.66666667%;
}
.aui-flex-item-3 {
float: left;
width: 25%;
}
.aui-flex-offset-3 {
margin-left: 25%;
}
.aui-flex-item-4 {
float: left;
width: 33.33333333%;
}
.aui-flex-offset-4 {
margin-left: 33.33333333%;
}
.aui-flex-item-5 {
float: left;
width: 41.66666667%;
}
.aui-flex-offset-5 {
margin-left: 41.66666667%;
}
.aui-flex-item-6 {
float: left;
width: 50%;
}
.aui-flex-offset-6 {
margin-left: 50%;
}
.aui-flex-item-7 {
float: left;
width: 58.33333333%;
}
.aui-flex-offset-7 {
margin-left: 58.33333333%;
}
.aui-flex-item-8 {
float: left;
width: 66.66666667%;
}
.aui-flex-offset-8 {
margin-left: 66.66666667%;
}
.aui-flex-item-9 {
float: left;
width: 75%;
}
.aui-flex-offset-9 {
margin-left: 75%;
}
.aui-flex-item-10 {
float: left;
width: 83.33333333%;
}
.aui-flex-offset-10 {
margin-left: 83.33333333%;
}
.aui-flex-order-10 {
-webkit-box-ordinal-group: 11;
-webkit-order: 10;
order: 10;
}
.aui-flex-item-11 {
float: left;
width: 91.66666667%;
}
.aui-flex-offset-11 {
margin-left: 91.66666667%;
}
.aui-flex-item-12 {
float: left;
width: 100%;
}
.aui-flex-offset-12 {
margin-left: 100%;
}
.aui-flex-auto {
float: left;
-webkit-box-flex: 1;
-webkit-flex-grow: 1;
flex-grow: 1;
}
.aui-flex-between {
-webkit-box-pack: justify;
-webkit-justify-content: space-between;
justify-content: space-between;
}
/*对齐*/
.aui-flex-col.aui-flex-left {
-webkit-box-pack: start;
-webkit-justify-content: flex-start;
justify-content: flex-start;
}
.aui-flex-col.aui-flex-right {
-webkit-box-pack: end;
-webkit-justify-content: flex-end;
justify-content: flex-end;
}
.aui-flex-col.aui-flex-top {
-webkit-box-align: start;
-webkit-align-items: flex-start;
align-items: flex-start;
}
.aui-flex-col.aui-flex-bottom {
-webkit-box-align: end;
-webkit-align-items: flex-end;
align-items: flex-end;
}
.aui-flex-col.aui-flex-center {
-webkit-box-pack: center;
-webkit-justify-content: center;
justify-content: center;
}
.aui-flex-col.aui-flex-middle {
-webkit-box-align: center;
-webkit-align-items: center;
align-items: center;
}
.aui-flex-row.aui-flex-left {
-webkit-box-align: start;
-webkit-align-items: flex-start;
align-items: flex-start;
}
.aui-flex-row.aui-flex-right {
-webkit-box-align: end;
-webkit-align-items: flex-end;
align-items: flex-end;
}
.aui-flex-row.aui-flex-top {
-webkit-box-pack: start;
-webkit-justify-content: flex-start;
justify-content: flex-start;
}
.aui-flex-row.aui-flex-bottom {
-webkit-box-pack: end;
-webkit-justify-content: flex-end;
justify-content: flex-end;
}
.aui-flex-row.aui-flex-center {
-webkit-box-align: center;
-webkit-align-items: center;
align-items: center;
}
.aui-flex-row.aui-flex-middle {
-webkit-box-pack: center;
-webkit-justify-content: center;
justify-content: center;
}
[class*=aui-flex-item-]{
position: relative;
}
[class*=aui-flex-auto].aui-flex-left {
margin-right: auto;
}
[class*=aui-flex-auto].aui-flex-right {
margin-left: auto;
}
[class*=aui-flex-auto].aui-flex-top {
margin-bottom: auto;
}
[class*=aui-flex-auto].aui-flex-bottom {
margin-top: auto;
}
[class*=aui-flex-auto].aui-flex-center {
margin-left: auto;
margin-right: auto;
}
[class*=aui-flex-auto].aui-flex-middle {
margin-top: auto;
margin-bottom: auto;
}

View File

@@ -0,0 +1,54 @@
/**
* aui-pull-refresh.css 下拉刷新
* verson 0.0.1
* @author 流浪男 && Beck
* http://www.auicss.com
* @todo more things to abstract, e.g. Loading css etc.
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
.aui-refresh-content {
position: relative;
-webkit-overflow-scrolling: touch;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
.aui-refresh-load {
width: 100%;
height: 2.2rem;
position: absolute;
top: -2.2rem;
left: 0;
padding: 0.75rem 0;
}
.aui-refresh-pull-arrow {
width: 1.2rem;
height: 1.2rem;
position: absolute;
left: 50%;
top: 50%;
visibility: visible;
margin-left: -0.6rem;
margin-top: -0.6rem;
background: no-repeat center;
background-image: url('data:image/svg+xml;charset=utf-8,<svg width="200" height="200" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"><path d="M99.225 3.528c8.34 0 15.104 6.763 15.104 15.105 0 8.34-6.766 15.105-15.105 15.105-8.342 0-15.105-6.763-15.105-15.105S90.883 3.528 99.225 3.528zM76.567 48.843h45.315c4.17 0 7.552 3.38 7.552 7.552v5.035c0 4.172-3.382 7.552-7.552 7.552H76.567c-4.172 0-7.553-3.38-7.553-7.552v-5.035c0-4.172 3.38-7.552 7.553-7.552zm-10.07 35.245h65.455c4.17 0 7.552 3.38 7.552 7.552v5.035c0 4.172-3.382 7.552-7.552 7.552H66.497c-4.172 0-7.553-3.38-7.553-7.552V91.64c0-4.172 3.38-7.552 7.553-7.552zm8.044 87.596c-20.397-23.16-45.805-52.352-45.805-52.352h140.98s-25.146 28.735-45.4 51.884c-33.454 38.234-18.118 36.4-49.774.468z" fill="#707070" class="transform-group"/></svg>');
background-size: 1.2rem 1.2rem;
z-index: 10;
-webkit-transform: rotate(0deg) translate3d(0, 0, 0);
transform: rotate(0deg) translate3d(0, 0, 0);
-webkit-transition-duration: 300ms;
transition-duration: 300ms;
}
.aui-refresh-content.aui-refresh-pull-down .aui-refresh-pull-arrow {
-webkit-transform: rotate(0deg) translate3d(0,0,0);
transform: rotate(0deg) translate3d(0,0,0);
}
.aui-refresh-content.aui-refresh-pull-up .aui-refresh-pull-arrow {
-webkit-transform: rotate(180deg) translate3d(0,0,0);
transform: rotate(180deg) translate3d(0,0,0);
}
.aui-refreshing .aui-refresh-pull-arrow{
background-image: url('data:image/svg+xml;charset=utf-8,<svg width="200" height="200" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"><path d="M99.917.167C45.52.167 1.28 43.642.03 97.737c1.153-47.204 37.045-85.08 81.153-85.08 44.834 0 81.184 39.147 81.184 87.426 0 10.346 8.387 18.738 18.733 18.738 10.342 0 18.733-8.39 18.733-18.737C199.833 44.9 155.1.167 99.917.167zm0 199.833c54.395 0 98.637-43.475 99.883-97.57-1.15 47.2-37.042 85.082-81.15 85.082-44.833 0-81.183-39.15-81.183-87.43 0-10.34-8.392-18.732-18.738-18.732C8.39 81.35 0 89.737 0 100.083 0 155.267 44.733 200 99.917 200z" fill="#707070" class="transform-group"/></svg>');
-webkit-animation: rotate 1s 0s linear infinite;
animation: rotate 1s 0s linear infinite;
}

View File

@@ -0,0 +1,277 @@
/*
* ===================================================================================================
* APIClud - AUI UI 框架 流浪男 QQ343757327 http://www.auicss.com
* Verson 2.0.0 自定义主题样式
* explain自定义主题样式可以完成AUI内所有背景、控件颜色、字号等的修改可以方便快速的搭建属于自己项目的一套主题色
* ===================================================================================================
*/
/*body背景色及色值*/
body {
color: #d1d1d1;
background-color: #1a1a1a;
}
p {
color: #757575;
}
a {
color: #0062cc;
}
.aui-text-default {
color: #212121 !important;
}
.aui-bg-default {
background-color: #f5f5f5 !important;
}
/*label*/
.aui-label {
padding: 0.3em 0.35em;
font-size: 0.6rem;
color: #616161;
background-color: #e0e0e0;
}
.aui-label-outlined {
border: 1px solid #d9d9d9;
background-color: transparent;
}
.aui-label .aui-iconfont {
font-size: 0.6rem;
}
/*角标*/
.aui-badge {
color: #ffffff;
background-color: #ff2600;
}
/*按钮*/
.aui-btn {
color: #212121;
background: #e0e0e0;
}
.aui-btn:active {
color: #212121;
background-color: #bdbdbd;
}
.aui-btn-outlined {
background: transparent;
border: 1px solid #bdbdbd;
}
.aui-btn-outlined:active {
background: transparent;
}
/*tab*/
.aui-tab .aui-tab-item {
height: 2.2rem;
line-height: 2.2rem;
font-size: 0.7rem;
color: #212121;
background-color: #ffffff;
}
/*tab选中时样式*/
.aui-tab .aui-tab-item.active {
color: #039be5;
border-bottom: 2px solid #039be5;
}
/*单选选中样式*/
.aui-radio:checked,
.aui-radio.aui-checked {
background-color: #edfb3f;
border: solid 1px #edfb3f;
}
/* 单选选中时中间对号颜色*/
.aui-radio:checked:before,
.aui-radio.aui-checked:before,
.aui-radio:checked:after,
.aui-radio.aui-checked:after {
border-color: #212121;
}
/*多选选中样式*/
.aui-checkbox:checked,
.aui-checkbox.aui-checked {
background-color: #edfb3f;
border: solid 1px #edfb3f;
}
/* 多选选中时中间对号颜色*/
.aui-checkbox:checked:before,
.aui-checkbox.aui-checked:before,
.aui-checkbox:checked:after,
.aui-checkbox.aui-checked:after{
border-color: #212121;
}
/*滑动开关*/
.aui-switch:checked {
border-color: #edfb3f;
background-color: #edfb3f;
}
.aui-switch:before {
background-color: #212121;
}
/*顶部导航栏*/
.aui-bar-nav {
background-color: #00bbd4;
color: #212121;
}
.aui-bar-nav .aui-iconfont {
color: #212121;
}
.aui-bar-nav .aui-btn .aui-iconfont {
color: #212121;
}
/*浅色顶部导航拦*/
.aui-bar-light {
color: #03a9f4;
background-color: #ffffff;
}
.aui-bar.aui-bar-light .aui-iconfont {
color: #03a9f4;
}
.aui-bar.aui-bar-light .aui-btn-outlined {
border-color: #03a9f4;
}
/*底部工具栏*/
.aui-bar-tab {
background-color: #ffffff;
color: #757575;
}
/*底部工具栏选中时颜色*/
.aui-bar-tab .active {
color: #039be5;
}
/*按钮工具栏*/
.aui-bar-btn .aui-bar-btn-item {
border-color: #edfb3f;
color: #edfb3f;
}
.aui-bar-btn .aui-bar-btn-item.active {
background-color: #edfb3f;
color: #ffffff;
}
/*顶部导航存在按钮组工具栏时样式*/
.aui-bar-nav .aui-bar-btn-item {
border-color: #ffffff;
}
/*浅色顶部导航存在按钮组工具栏时样式*/
.aui-bar-nav.aui-bar-light .aui-bar-btn-item {
border-color: #03a9f4;
}
/*顶部导航存在按钮组工具栏时选中样式*/
.aui-bar-nav .aui-bar-btn .aui-bar-btn-item.active {
background-color: #ffffff;
color: #03a9f4;
}
/*浅色顶部导航存在按钮组工具栏时选中样式*/
.aui-bar-nav.aui-bar-light .aui-bar-btn .aui-bar-btn-item.active {
background-color: #03a9f4;
color: #ffffff;
}
/*进度条*/
.aui-progress {
background-color: #f0f0f0;
}
/*进度条色带*/
.aui-progress .aui-progress-bar {
background-color: #eefb3f;
}
/*滑块*/
.aui-range input[type='range']{
/*滑块线条背景色*/
background-color: #f0f0f0;
}
.aui-range input[type='range']::-webkit-slider-thumb {
/*滑块圆圈样式*/
border-color: #edfb3f;
background-color: #edfb3f;
}
/*提示条*/
.aui-tips {
background-color: rgba(0,0,0,.6);
}
/*搜索条*/
.aui-searchbar {
background-color: #ebeced;
color: #9e9e9e;
}
/*列表背景色*/
.aui-list .aui-list-item {
color: #d1d1d1;
background-color: #1a1a1a;
}
/*列表头部*/
.aui-list .aui-list-header {
background-color: #242424;
color: #9e9e9e;
}
/*列表项内Ttitle标题*/
.aui-list .aui-list-item-title {
font-size: 0.8rem;
color: #d1d1d1;
}
/*列表文本区域字体*/
.aui-list .aui-list-item-text {
font-size: 0.7rem;
color: #d1d1d1;
}
/*列表右侧箭头*/
.aui-list-item-arrow:before {
border-color: #edfb3f;
}
/*列表右侧其他信息字体颜色*/
.aui-list .aui-list-item-right,
.aui-list-item-title-row em {
color: #edfb3f;
}
/*列表线条颜色*/
.aui-list:before,
.aui-list:after,
.aui-list .aui-list-item:after,
.aui-list.aui-list-in .aui-list-item-inner:after {
background-color: #242424;
}
/*列表项点击颜色*/
.aui-list .aui-list-item:active {
background-color: #f5f5f5;
}
/*媒体列表布局左(右)媒体宽度控制*/
.aui-list .aui-list-item-media {
width: 4.5rem;
}
/*列表内label、icon字体颜色*/
.aui-list .aui-list-item-label,
.aui-list .aui-list-item-label-icon {
color: #d1d1d1;
}
/*卡片列表顶部字体*/
.aui-card-list-header {
font-size: 0.8rem;
color: #212121;
}
/* 卡片列表内容区域*/
.aui-card-list-content,
.aui-card-list-content-padded {
font-size: 0.7rem;
color: #212121;
}
/*卡片列表底部*/
.aui-card-list-footer {
font-size: 0.7rem;
color: #757575;
}
/*信息条*/
.aui-info {
font-size: 0.7rem;
color: #757575;
background-color: transparent;
}
/*输入框类字体颜色*/
input[type="text"],
input[type="password"],
input[type="search"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="date"],
input[type="datetime-local"],
input[type="time"],
input[type="number"],
select,
textarea {
color: #424242;
}

View File

@@ -0,0 +1,278 @@
/*
* ===================================================================================================
* APIClud - AUI UI 框架 流浪男 QQ343757327 http://www.auicss.com
* Verson 2.0.0 自定义主题样式
* explain自定义主题样式可以完成AUI内所有背景、控件颜色、字号等的修改可以方便快速的搭建属于自己项目的一套主题色
* ===================================================================================================
*/
/*body背景色及色值*/
body {
color: #212121;
background-color: #f5f5f5;
}
p {
color: #757575;
}
a {
color: #0062cc;
}
.aui-text-default {
color: #212121 !important;
}
.aui-bg-default {
background-color: #f5f5f5 !important;
}
/*label*/
.aui-label {
padding: 0.3em 0.35em;
font-size: 0.6rem;
color: #616161;
background-color: #e0e0e0;
}
.aui-label-outlined {
border: 1px solid #d9d9d9;
background-color: transparent;
}
.aui-label .aui-iconfont {
font-size: 0.6rem;
}
/*角标*/
.aui-badge {
color: #ffffff;
background-color: #ff2600;
}
/*按钮*/
.aui-btn {
color: #212121;
background: #e0e0e0;
}
.aui-btn:active {
color: #212121;
background-color: #bdbdbd;
}
.aui-btn-outlined {
background: transparent;
border: 1px solid #bdbdbd;
}
.aui-btn-outlined:active {
background: transparent;
}
/*tab*/
.aui-tab .aui-tab-item {
height: 2.2rem;
line-height: 2.2rem;
font-size: 0.7rem;
color: #212121;
background-color: #ffffff;
}
/*tab选中时样式*/
.aui-tab .aui-tab-item.aui-active {
color: #039be5;
border-bottom: 2px solid #039be5;
}
/*单选选中样式*/
.aui-radio:checked,
.aui-radio.aui-checked {
background-color: #03a9f4;
border: solid 1px #03a9f4;
}
/* 单选选中时中间对号颜色*/
.aui-radio:checked:before,
.aui-radio.aui-checked:before,
.aui-radio:checked:after,
.aui-radio.aui-checked:after {
border-color: #ffffff;
}
/*多选选中样式*/
.aui-checkbox:checked,
.aui-checkbox.aui-checked {
background-color: #03a9f4;
border: solid 1px #03a9f4;
}
/* 多选选中时中间对号颜色*/
.aui-checkbox:checked:before,
.aui-checkbox.aui-checked:before,
.aui-checkbox:checked:after,
.aui-checkbox.aui-checked:after{
border-color: #ffffff;
}
/*滑动开关*/
.aui-switch:checked {
border-color: #03a9f4;
background-color: #03a9f4;
}
/*滑动开关圆圈颜色*/
.aui-switch:before {
background-color: #ffffff;
}
/*顶部导航栏*/
.aui-bar-nav {
background-color: #03a9f4;
color: #ffffff;
}
.aui-bar-nav .aui-iconfont {
color: #ffffff;
}
.aui-bar-nav .aui-btn .aui-iconfont {
color: #ffffff;
}
/*浅色顶部导航拦*/
.aui-bar-light {
color: #03a9f4;
background-color: #ffffff;
}
.aui-bar.aui-bar-light .aui-iconfont {
color: #03a9f4;
}
.aui-bar.aui-bar-light .aui-btn-outlined {
border-color: #03a9f4;
}
/*底部工具栏*/
.aui-bar-tab {
background-color: #ffffff;
color: #757575;
}
/*底部工具栏选中时颜色*/
.aui-bar-tab .aui-active {
color: #039be5;
}
/*按钮工具栏*/
.aui-bar-btn .aui-bar-btn-item {
border-color: #03a9f4;
color: #212121;
}
.aui-bar-btn .aui-bar-btn-item.aui-active {
background-color: #03a9f4;
color: #ffffff;
}
/*顶部导航存在按钮组工具栏时样式*/
.aui-bar-nav .aui-bar-btn-item {
border-color: #ffffff;
}
/*浅色顶部导航存在按钮组工具栏时样式*/
.aui-bar-nav.aui-bar-light .aui-bar-btn-item {
border-color: #03a9f4;
}
/*顶部导航存在按钮组工具栏时选中样式*/
.aui-bar-nav .aui-bar-btn .aui-bar-btn-item.aui-active {
background-color: #ffffff;
color: #03a9f4;
}
/*浅色顶部导航存在按钮组工具栏时选中样式*/
.aui-bar-nav.aui-bar-light .aui-bar-btn .aui-bar-btn-item.aui-active {
background-color: #03a9f4;
color: #ffffff;
}
/*进度条*/
.aui-progress {
background-color: #f0f0f0;
}
/*进度条色带*/
.aui-progress .aui-progress-bar {
background-color: #03a9f4;
}
/*滑块*/
.aui-range input[type='range']{
/*滑块线条背景色*/
background-color: #f0f0f0;
}
.aui-range input[type='range']::-webkit-slider-thumb {
/*滑块圆圈样式*/
border-color: #03a9f4;
background-color: #03a9f4;
}
/*提示条*/
.aui-tips {
background-color: rgba(0,0,0,.6);
}
/*搜索条*/
.aui-searchbar {
background-color: #ebeced;
color: #9e9e9e;
}
/*列表背景色*/
.aui-list .aui-list-item {
color: #212121;
background-color: #ffffff;
}
/*列表头部*/
.aui-list .aui-list-header {
background-color: #e0e0e0;
color: #212121;
}
/*列表项内Ttitle标题*/
.aui-list .aui-list-item-title {
font-size: 0.8rem;
color: #212121;
}
/*列表文本区域字体*/
.aui-list .aui-list-item-text {
font-size: 0.7rem;
color: #757575;
}
/*列表右侧箭头*/
.aui-list-item-arrow:before {
border-color: #dddddd;
}
/*列表右侧其他信息字体颜色*/
.aui-list .aui-list-item-right,
.aui-list-item-title-row em {
color: #757575;
}
/*列表线条颜色*/
.aui-list:before,
.aui-list:after,
.aui-list .aui-list-item:after,
.aui-list.aui-list-in .aui-list-item-inner:after {
background-color: #dddddd;
}
/*列表项点击颜色*/
.aui-list .aui-list-item:active {
background-color: #f5f5f5;
}
/*媒体列表布局左(右)媒体宽度控制*/
.aui-list .aui-list-item-media {
width: 4.5rem;
}
/*列表内label、icon字体颜色*/
.aui-list .aui-list-item-label,
.aui-list .aui-list-item-label-icon {
color: #212121;
}
/*卡片列表顶部字体*/
.aui-card-list-header {
font-size: 0.8rem;
color: #212121;
}
/* 卡片列表内容区域*/
.aui-card-list-content,
.aui-card-list-content-padded {
font-size: 0.7rem;
color: #212121;
}
/*卡片列表底部*/
.aui-card-list-footer {
font-size: 0.7rem;
color: #757575;
}
/*信息条*/
.aui-info {
font-size: 0.7rem;
color: #757575;
background-color: transparent;
}
/*输入框类字体颜色*/
input[type="text"],
input[type="password"],
input[type="search"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="date"],
input[type="datetime-local"],
input[type="time"],
input[type="number"],
select,
textarea {
color: #424242;
}

View File

@@ -0,0 +1,113 @@
/**
* aui-slide.css 轮播样式
* verson 0.0.2
* @author 流浪男
* http://www.auicss.com
* @todo more things to abstract, e.g. Loading css etc.
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
.aui-slide-wrap {
display: block;
position: relative;
list-style: none;
margin: 0;
padding: 0;
height: 100%;
width: 100%;
overflow: hidden;
}
.aui-slide-wrap .aui-slide-node {
position: absolute;
top: 0;
left: 0;
margin: 0;
padding: 0;
width: 100%;
height: 100%;
list-style: none;
overflow: hidden;
background: #ffffff;
}
.aui-slide-node-center {
display: -moz-box;
display: -webkit-box;
display: box;
-moz-box-pack: center;
-webkit-box-pack: center;
box-pack: center;
}
.aui-slide-node-middle {
display: -moz-box;
display: -webkit-box;
display: box;
-moz-box-align: center;
-webkit-box-align: center;
box-align: center;
}
.aui-slide-node img {
width: 100%;
height: 100%;
}
.aui-slide-page-wrap {
width: 100%;
height: 30px;
line-height: 30px;
position: absolute;
padding: 0;
left: 0;
right: 0;
bottom: 5px;
z-index: 9999;
text-align: center;
}
.aui-slide-page-dot {
position: relative;
display: inline-block;
width: 6px;
height: 6px;
border-radius: 50%;
list-style: none;
margin: 5px 3px 0 3px;
background: #c7c7c7;
-webkit-transition: all 0.5s;
transition: all 0.5s;
}
.aui-slide-page-line {
position: absolute;
bottom: -14px;
height: 1px !important;
position: relative;
display: inline-block;
background: #eeeeee;
-webkit-transition: all 0.5s;
transition: all 0.5s;
}
.aui-slide-page-active {
background: #1abc9c;
from { opacity: 0.3; }
to { opacity: 1 }
}
.aui-slide-prev-btn,
.aui-slide-next-btn {
display: inline-block;
width: 50px;
height: 30px;
line-height: 30px;
font-size: 1.2em;
color: #1abc9c;
background: rgba(249,249,249,0.6);
position: relative;
}
.aui-slide-prev-btn {
border-top-left-radius: 15px;
border-bottom-left-radius: 15px;
}
.aui-slide-next-btn {
border-top-right-radius: 15px;
border-bottom-right-radius: 15px;
}
.aui-slide-prev-btn:active,
.aui-slide-next-btn:active {
color: #f1c40f;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1 @@
38835eee-9291-48ce-9422-53733b0d79f3

View File

@@ -0,0 +1,607 @@
/*
* APICloud JavaScript Library
* Copyright (c) 2014 apicloud.com
*/
(function(window){
var u = {};
var isAndroid = (/android/gi).test(navigator.appVersion);
var uzStorage = function(){
var ls = window.localStorage;
if(isAndroid){
ls = os.localStorage();
}
return ls;
};
function parseArguments(url, data, fnSuc, dataType) {
if (typeof(data) == 'function') {
dataType = fnSuc;
fnSuc = data;
data = undefined;
}
if (typeof(fnSuc) != 'function') {
dataType = fnSuc;
fnSuc = undefined;
}
return {
url: url,
data: data,
fnSuc: fnSuc,
dataType: dataType
};
}
u.trim = function(str){
if(String.prototype.trim){
return str == null ? "" : String.prototype.trim.call(str);
}else{
return str.replace(/(^\s*)|(\s*$)/g, "");
}
};
u.trimAll = function(str){
return str.replace(/\s*/g,'');
};
u.isElement = function(obj){
return !!(obj && obj.nodeType == 1);
};
u.isArray = function(obj){
if(Array.isArray){
return Array.isArray(obj);
}else{
return obj instanceof Array;
}
};
u.isEmptyObject = function(obj){
if(JSON.stringify(obj) === '{}'){
return true;
}
return false;
};
u.addEvt = function(el, name, fn, useCapture){
if(!u.isElement(el)){
console.warn('$api.addEvt Function need el param, el param must be DOM Element');
return;
}
useCapture = useCapture || false;
if(el.addEventListener) {
el.addEventListener(name, fn, useCapture);
}
};
u.rmEvt = function(el, name, fn, useCapture){
if(!u.isElement(el)){
console.warn('$api.rmEvt Function need el param, el param must be DOM Element');
return;
}
useCapture = useCapture || false;
if (el.removeEventListener) {
el.removeEventListener(name, fn, useCapture);
}
};
u.one = function(el, name, fn, useCapture){
if(!u.isElement(el)){
console.warn('$api.one Function need el param, el param must be DOM Element');
return;
}
useCapture = useCapture || false;
var that = this;
var cb = function(){
fn && fn();
that.rmEvt(el, name, cb, useCapture);
};
that.addEvt(el, name, cb, useCapture);
};
u.dom = function(el, selector){
if(arguments.length === 1 && typeof arguments[0] == 'string'){
if(document.querySelector){
return document.querySelector(arguments[0]);
}
}else if(arguments.length === 2){
if(el.querySelector){
return el.querySelector(selector);
}
}
};
u.domAll = function(el, selector){
if(arguments.length === 1 && typeof arguments[0] == 'string'){
if(document.querySelectorAll){
return document.querySelectorAll(arguments[0]);
}
}else if(arguments.length === 2){
if(el.querySelectorAll){
return el.querySelectorAll(selector);
}
}
};
u.byId = function(id){
return document.getElementById(id);
};
u.first = function(el, selector){
if(arguments.length === 1){
if(!u.isElement(el)){
console.warn('$api.first Function need el param, el param must be DOM Element');
return;
}
return el.children[0];
}
if(arguments.length === 2){
return this.dom(el, selector+':first-child');
}
};
u.last = function(el, selector){
if(arguments.length === 1){
if(!u.isElement(el)){
console.warn('$api.last Function need el param, el param must be DOM Element');
return;
}
var children = el.children;
return children[children.length - 1];
}
if(arguments.length === 2){
return this.dom(el, selector+':last-child');
}
};
u.eq = function(el, index){
return this.dom(el, ':nth-child('+ index +')');
};
u.not = function(el, selector){
return this.domAll(el, ':not('+ selector +')');
};
u.prev = function(el){
if(!u.isElement(el)){
console.warn('$api.prev Function need el param, el param must be DOM Element');
return;
}
var node = el.previousSibling;
if(node.nodeType && node.nodeType === 3){
node = node.previousSibling;
return node;
}
};
u.next = function(el){
if(!u.isElement(el)){
console.warn('$api.next Function need el param, el param must be DOM Element');
return;
}
var node = el.nextSibling;
if(node.nodeType && node.nodeType === 3){
node = node.nextSibling;
return node;
}
};
u.closest = function(el, selector){
if(!u.isElement(el)){
console.warn('$api.closest Function need el param, el param must be DOM Element');
return;
}
var doms, targetDom;
var isSame = function(doms, el){
var i = 0, len = doms.length;
for(i; i<len; i++){
if(doms[i].isEqualNode(el)){
return doms[i];
}
}
return false;
};
var traversal = function(el, selector){
doms = u.domAll(el.parentNode, selector);
targetDom = isSame(doms, el);
while(!targetDom){
el = el.parentNode;
if(el != null && el.nodeType == el.DOCUMENT_NODE){
return false;
}
traversal(el, selector);
}
return targetDom;
};
return traversal(el, selector);
};
u.contains = function(parent,el){
var mark = false;
if(el === parent){
mark = true;
return mark;
}else{
do{
el = el.parentNode;
if(el === parent){
mark = true;
return mark;
}
}while(el === document.body || el === document.documentElement);
return mark;
}
};
u.remove = function(el){
if(el && el.parentNode){
el.parentNode.removeChild(el);
}
};
u.attr = function(el, name, value){
if(!u.isElement(el)){
console.warn('$api.attr Function need el param, el param must be DOM Element');
return;
}
if(arguments.length == 2){
return el.getAttribute(name);
}else if(arguments.length == 3){
el.setAttribute(name, value);
return el;
}
};
u.removeAttr = function(el, name){
if(!u.isElement(el)){
console.warn('$api.removeAttr Function need el param, el param must be DOM Element');
return;
}
if(arguments.length === 2){
el.removeAttribute(name);
}
};
u.hasCls = function(el, cls){
if(!u.isElement(el)){
console.warn('$api.hasCls Function need el param, el param must be DOM Element');
return;
}
if(el.className.indexOf(cls) > -1){
return true;
}else{
return false;
}
};
u.addCls = function(el, cls){
if(!u.isElement(el)){
console.warn('$api.addCls Function need el param, el param must be DOM Element');
return;
}
if('classList' in el){
el.classList.add(cls);
}else{
var preCls = el.className;
var newCls = preCls +' '+ cls;
el.className = newCls;
}
return el;
};
u.removeCls = function(el, cls){
if(!u.isElement(el)){
console.warn('$api.removeCls Function need el param, el param must be DOM Element');
return;
}
if('classList' in el){
el.classList.remove(cls);
}else{
var preCls = el.className;
var newCls = preCls.replace(cls, '');
el.className = newCls;
}
return el;
};
u.toggleCls = function(el, cls){
if(!u.isElement(el)){
console.warn('$api.toggleCls Function need el param, el param must be DOM Element');
return;
}
if('classList' in el){
el.classList.toggle(cls);
}else{
if(u.hasCls(el, cls)){
u.removeCls(el, cls);
}else{
u.addCls(el, cls);
}
}
return el;
};
u.val = function(el, val){
if(!u.isElement(el)){
console.warn('$api.val Function need el param, el param must be DOM Element');
return;
}
if(arguments.length === 1){
switch(el.tagName){
case 'SELECT':
var value = el.options[el.selectedIndex].value;
return value;
break;
case 'INPUT':
return el.value;
break;
case 'TEXTAREA':
return el.value;
break;
}
}
if(arguments.length === 2){
switch(el.tagName){
case 'SELECT':
el.options[el.selectedIndex].value = val;
return el;
break;
case 'INPUT':
el.value = val;
return el;
break;
case 'TEXTAREA':
el.value = val;
return el;
break;
}
}
};
u.prepend = function(el, html){
if(!u.isElement(el)){
console.warn('$api.prepend Function need el param, el param must be DOM Element');
return;
}
el.insertAdjacentHTML('afterbegin', html);
return el;
};
u.append = function(el, html){
if(!u.isElement(el)){
console.warn('$api.append Function need el param, el param must be DOM Element');
return;
}
el.insertAdjacentHTML('beforeend', html);
return el;
};
u.before = function(el, html){
if(!u.isElement(el)){
console.warn('$api.before Function need el param, el param must be DOM Element');
return;
}
el.insertAdjacentHTML('beforebegin', html);
return el;
};
u.after = function(el, html){
if(!u.isElement(el)){
console.warn('$api.after Function need el param, el param must be DOM Element');
return;
}
el.insertAdjacentHTML('afterend', html);
return el;
};
u.html = function(el, html){
if(!u.isElement(el)){
console.warn('$api.html Function need el param, el param must be DOM Element');
return;
}
if(arguments.length === 1){
return el.innerHTML;
}else if(arguments.length === 2){
el.innerHTML = html;
return el;
}
};
u.text = function(el, txt){
if(!u.isElement(el)){
console.warn('$api.text Function need el param, el param must be DOM Element');
return;
}
if(arguments.length === 1){
return el.textContent;
}else if(arguments.length === 2){
el.textContent = txt;
return el;
}
};
u.offset = function(el){
if(!u.isElement(el)){
console.warn('$api.offset Function need el param, el param must be DOM Element');
return;
}
var sl = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft);
var st = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
var rect = el.getBoundingClientRect();
return {
l: rect.left + sl,
t: rect.top + st,
w: el.offsetWidth,
h: el.offsetHeight
};
};
u.css = function(el, css){
if(!u.isElement(el)){
console.warn('$api.css Function need el param, el param must be DOM Element');
return;
}
if(typeof css == 'string' && css.indexOf(':') > 0){
el.style && (el.style.cssText += ';' + css);
}
};
u.cssVal = function(el, prop){
if(!u.isElement(el)){
console.warn('$api.cssVal Function need el param, el param must be DOM Element');
return;
}
if(arguments.length === 2){
var computedStyle = window.getComputedStyle(el, null);
return computedStyle.getPropertyValue(prop);
}
};
u.jsonToStr = function(json){
if(typeof json === 'object'){
return JSON && JSON.stringify(json);
}
};
u.strToJson = function(str){
if(typeof str === 'string'){
return JSON && JSON.parse(str);
}
};
u.setStorage = function(key, value){
if(arguments.length === 2){
var v = value;
if(typeof v == 'object'){
v = JSON.stringify(v);
v = 'obj-'+ v;
}else{
v = 'str-'+ v;
}
var ls = uzStorage();
if(ls){
ls.setItem(key, v);
}
}
};
u.getStorage = function(key){
var ls = uzStorage();
if(ls){
var v = ls.getItem(key);
if(!v){return;}
if(v.indexOf('obj-') === 0){
v = v.slice(4);
return JSON.parse(v);
}else if(v.indexOf('str-') === 0){
return v.slice(4);
}
}
};
u.rmStorage = function(key){
var ls = uzStorage();
if(ls && key){
ls.removeItem(key);
}
};
u.clearStorage = function(){
var ls = uzStorage();
if(ls){
ls.clear();
}
};
/*by king*/
u.fixIos7Bar = function(el){
if(!u.isElement(el)){
console.warn('$api.fixIos7Bar Function need el param, el param must be DOM Element');
return;
}
var strDM = api.systemType;
if (strDM == 'ios') {
var strSV = api.systemVersion;
var numSV = parseInt(strSV,10);
var fullScreen = api.fullScreen;
var iOS7StatusBarAppearance = api.iOS7StatusBarAppearance;
if (numSV >= 7 && !fullScreen && iOS7StatusBarAppearance) {
el.style.paddingTop = '20px';
}
}
};
u.fixStatusBar = function(el){
if(!u.isElement(el)){
console.warn('$api.fixStatusBar Function need el param, el param must be DOM Element');
return;
}
var sysType = api.systemType;
if(sysType == 'ios'){
u.fixIos7Bar(el);
}else if(sysType == 'android'){
var ver = api.systemVersion;
ver = parseFloat(ver);
if(ver >= 4.4){
el.style.paddingTop = '25px';
}
}
};
u.toast = function(title, text, time){
var opts = {};
var show = function(opts, time){
api.showProgress(opts);
setTimeout(function(){
api.hideProgress();
},time);
};
if(arguments.length === 1){
var time = time || 500;
if(typeof title === 'number'){
time = title;
}else{
opts.title = title+'';
}
show(opts, time);
}else if(arguments.length === 2){
var time = time || 500;
var text = text;
if(typeof text === "number"){
var tmp = text;
time = tmp;
text = null;
}
if(title){
opts.title = title;
}
if(text){
opts.text = text;
}
show(opts, time);
}
if(title){
opts.title = title;
}
if(text){
opts.text = text;
}
time = time || 500;
show(opts, time);
};
u.post = function(/*url,data,fnSuc,dataType*/){
var argsToJson = parseArguments.apply(null, arguments);
var json = {};
var fnSuc = argsToJson.fnSuc;
argsToJson.url && (json.url = argsToJson.url);
argsToJson.data && (json.data = argsToJson.data);
if(argsToJson.dataType){
var type = argsToJson.dataType.toLowerCase();
if (type == 'text'||type == 'json') {
json.dataType = type;
}
}else{
json.dataType = 'json';
}
json.method = 'post';
api.ajax(json,
function(ret,err){
if (ret) {
fnSuc && fnSuc(ret);
}
}
);
};
u.get = function(/*url,fnSuc,dataType*/){
var argsToJson = parseArguments.apply(null, arguments);
var json = {};
var fnSuc = argsToJson.fnSuc;
argsToJson.url && (json.url = argsToJson.url);
//argsToJson.data && (json.data = argsToJson.data);
if(argsToJson.dataType){
var type = argsToJson.dataType.toLowerCase();
if (type == 'text'||type == 'json') {
json.dataType = type;
}
}else{
json.dataType = 'text';
}
json.method = 'get';
api.ajax(json,
function(ret,err){
if (ret) {
fnSuc && fnSuc(ret);
}
}
);
};
/*end*/
window.$api = u;
})(window);

View File

@@ -0,0 +1,118 @@
/**
* aui-actionsheet.js
* @author 流浪男
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function( window, undefined ) {
"use strict";
var auiActionsheet = function() {
};
var isShow = false;
auiActionsheet.prototype = {
init: function(params,callback){
this.frameBounces = params.frameBounces;
this.title = params.title;
this.buttons = params.buttons;
this.cancelTitle = params.cancelTitle;
this.destructiveTitle = params.destructiveTitle;
this.maskDiv;
this.actionsheetDiv;
var self = this;
self.open(params,callback);
},
open: function(params,callback) {
var titleHtml='',buttonsHtml='',destructiveHtml='',cancelHtml='',btnHtml='';
var self = this;
if(self.actionsheetDiv || (!self.title && !self.buttons && !self.cancelTitle && !self.destructiveTitle))return;
if(!self.maskDiv){
self.maskDiv = document.createElement("div");
self.maskDiv.className = "aui-mask";
document.body.appendChild(self.maskDiv);
}
self.actionsheetDiv = document.createElement("div");
self.actionsheetDiv.className = "aui-actionsheet";
document.body.appendChild(self.actionsheetDiv);
if(self.title){
titleHtml = '<div class="aui-actionsheet-title aui-border-b aui-font-size-12">'+self.title+'</div>';
}
if(self.buttons && self.buttons.length){
for(var i = 0; i < self.buttons.length;i++){
if(i == self.buttons.length-1){
buttonsHtml += '<div class="aui-actionsheet-btn-item">'+self.buttons[i]+'</div>';
}else{
buttonsHtml += '<div class="aui-actionsheet-btn-item aui-border-b">'+self.buttons[i]+'</div>';
}
}
}
if(self.destructiveTitle){
destructiveHtml = '<div class="aui-actionsheet-btn-item aui-border-t aui-text-danger">'+self.destructiveTitle+'</div>';
}else{
var destructiveHtml = '';
}
if(self.title || (self.buttons && self.buttons.length)){
btnHtml = '<div class="aui-actionsheet-btn">'+titleHtml+''+buttonsHtml+''+destructiveHtml+'</div>';
}
if(self.cancelTitle){
cancelHtml = '<div class="aui-actionsheet-btn"><div class="aui-actionsheet-btn-item">'+self.cancelTitle+'</div></div>';
}
self.actionsheetDiv.insertAdjacentHTML('beforeend', btnHtml+cancelHtml);
var actionsheetHeight = document.querySelector(".aui-actionsheet").offsetHeight;
self.maskDiv.classList.add("aui-mask-in");
self.actionsheetDiv.style.webkitTransform = self.actionsheetDiv.style.transform = "translate3d(0,0,0)";
self.actionsheetDiv.style.opacity = 1;
self.actionsheetDiv.addEventListener("touchmove", function(event){
event.preventDefault();
})
self.maskDiv.addEventListener("touchmove", function(event){
event.preventDefault();
})
if(typeof(api) != 'undefined' && typeof(api) == 'object' && self.frameBounces){
api.setFrameAttr({
bounces:false
});
}
var actionsheetButtons = document.querySelectorAll(".aui-actionsheet-btn-item");
if(actionsheetButtons && actionsheetButtons.length > 0){
setTimeout(function(){
self.maskDiv.onclick = function(){self.close();return;};
for(var ii = 0; ii < actionsheetButtons.length; ii++){
(function(e){
actionsheetButtons[e].onclick = function(){
if(callback){
callback({
buttonIndex: e+1,
buttonTitle: this.textContent
});
};
self.close();
return;
}
})(ii)
}
}, 350)
}
},
close: function(){
var self = this;
if(typeof(api) != 'undefined' && typeof(api) == 'object' && self.frameBounces){
api.setFrameAttr({
bounces:true
});
}
if(self.actionsheetDiv){
var actionsheetHeight = self.actionsheetDiv.offsetHeight;
self.actionsheetDiv.style.webkitTransform = self.actionsheetDiv.style.transform = "translate3d(0,"+actionsheetHeight+"px,0)";
self.maskDiv.style.opacity = 0;
setTimeout(function(){
if(self.maskDiv){
self.maskDiv.parentNode.removeChild(self.maskDiv);
}
self.actionsheetDiv.parentNode.removeChild(self.actionsheetDiv);
self.actionsheetDiv = self.maskDiv = false;
}, 300)
}
}
};
window.auiActionsheet = auiActionsheet;
})(window);

View File

@@ -0,0 +1,44 @@
/**
* aui-collapse.js
* @author 流浪男
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function( window, undefined ) {
"use strict";
var auiCollapse = function(params) {
this.init(params);
};
auiCollapse.prototype = {
init: function(params,callback){
var collapseHeader = document.querySelectorAll(".aui-collapse-header");
if(collapseHeader.length){
for(var i=0;i<collapseHeader.length;i++){
(function(e){
collapseHeader[e].onclick = function(){
if(collapseHeader[e].nextSibling.nextElementSibling.className.indexOf("aui-collapse-content") > -1){
if(collapseHeader[e].nextSibling.nextElementSibling.className.indexOf("aui-show") > -1){
collapseHeader[e].nextSibling.nextElementSibling.classList.remove("aui-show");
collapseHeader[e].classList.remove("aui-active");
}else{
if(params.autoHide){
if(document.querySelector(".aui-collapse-header.aui-active")){
document.querySelector(".aui-collapse-header.aui-active").classList.remove("aui-active");
}
if(document.querySelector(".aui-collapse-content.aui-show")){
document.querySelector(".aui-collapse-content.aui-show").classList.remove("aui-show");
}
}
collapseHeader[e].nextSibling.nextElementSibling.classList.toggle("aui-show");
collapseHeader[e].classList.toggle("aui-active");
}
}
}
})(i)
}
}
}
};
window.auiCollapse = auiCollapse;
})(window);

View File

@@ -0,0 +1,125 @@
/**
* aui-dialog.js
* @author 流浪男
* @todo more things to abstract, e.g. Loading css etc.
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function( window, undefined ) {
"use strict";
var auiDialog = function() {
};
var isShow = false;
auiDialog.prototype = {
params: {
title:'',
msg:'',
buttons: ['取消','确定'],
input:false
},
create: function(params,callback) {
var self = this;
var dialogHtml = '';
var buttonsHtml = '';
var headerHtml = params.title ? '<div class="aui-dialog-header">' + params.title + '</div>' : '<div class="aui-dialog-header">' + self.params.title + '</div>';
if(params.input){
params.text = params.text ? params.text: '';
var msgHtml = '<div class="aui-dialog-body"><input type="text" placeholder="'+params.text+'"></div>';
}else{
var msgHtml = params.msg ? '<div class="aui-dialog-body">' + params.msg + '</div>' : '<div class="aui-dialog-body">' + self.params.msg + '</div>';
}
var buttons = params.buttons ? params.buttons : self.params.buttons;
if (buttons && buttons.length > 0) {
for (var i = 0; i < buttons.length; i++) {
buttonsHtml += '<div class="aui-dialog-btn" tapmode button-index="'+i+'">'+buttons[i]+'</div>';
}
}
var footerHtml = '<div class="aui-dialog-footer">'+buttonsHtml+'</div>';
dialogHtml = '<div class="aui-dialog">'+headerHtml+msgHtml+footerHtml+'</div>';
document.body.insertAdjacentHTML('beforeend', dialogHtml);
// listen buttons click
var dialogButtons = document.querySelectorAll(".aui-dialog-btn");
if(dialogButtons && dialogButtons.length > 0){
for(var ii = 0; ii < dialogButtons.length; ii++){
dialogButtons[ii].onclick = function(){
if(callback){
if(params.input){
callback({
buttonIndex: parseInt(this.getAttribute("button-index"))+1,
text: document.querySelector("input").value
});
}else{
callback({
buttonIndex: parseInt(this.getAttribute("button-index"))+1
});
}
};
self.close();
return;
}
}
}
self.open();
},
open: function(){
if(!document.querySelector(".aui-dialog"))return;
var self = this;
document.querySelector(".aui-dialog").style.marginTop = "-"+Math.round(document.querySelector(".aui-dialog").offsetHeight/2)+"px";
if(!document.querySelector(".aui-mask")){
var maskHtml = '<div class="aui-mask"></div>';
document.body.insertAdjacentHTML('beforeend', maskHtml);
}
// document.querySelector(".aui-dialog").style.display = "block";
setTimeout(function(){
document.querySelector(".aui-dialog").classList.add("aui-dialog-in");
document.querySelector(".aui-mask").classList.add("aui-mask-in");
document.querySelector(".aui-dialog").classList.add("aui-dialog-in");
}, 10)
document.querySelector(".aui-mask").addEventListener("touchmove", function(e){
e.preventDefault();
})
document.querySelector(".aui-dialog").addEventListener("touchmove", function(e){
e.preventDefault();
})
return;
},
close: function(){
var self = this;
document.querySelector(".aui-mask").classList.remove("aui-mask-in");
document.querySelector(".aui-dialog").classList.remove("aui-dialog-in");
document.querySelector(".aui-dialog").classList.add("aui-dialog-out");
if (document.querySelector(".aui-dialog:not(.aui-dialog-out)")) {
setTimeout(function(){
if(document.querySelector(".aui-dialog"))document.querySelector(".aui-dialog").parentNode.removeChild(document.querySelector(".aui-dialog"));
self.open();
return true;
},200)
}else{
document.querySelector(".aui-mask").classList.add("aui-mask-out");
document.querySelector(".aui-dialog").addEventListener("webkitTransitionEnd", function(){
self.remove();
})
document.querySelector(".aui-dialog").addEventListener("transitionend", function(){
self.remove();
})
}
},
remove: function(){
if(document.querySelector(".aui-dialog"))document.querySelector(".aui-dialog").parentNode.removeChild(document.querySelector(".aui-dialog"));
if(document.querySelector(".aui-mask")){
document.querySelector(".aui-mask").classList.remove("aui-mask-out");
}
return true;
},
alert: function(params,callback){
var self = this;
return self.create(params,callback);
},
prompt:function(params,callback){
var self = this;
params.input = true;
return self.create(params,callback);
}
};
window.auiDialog = auiDialog;
})(window);

View File

@@ -0,0 +1,48 @@
/**
* aui-lazyload.js
* @author 流浪男
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function( window, undefined ) {
"use strict";
var _loadImgNodes;
var auiLazyload = function(params) {
this.errorImage = params.errorImage||false;
this._init(params);
};
auiLazyload.prototype = {
_init: function(params) {
var self = this;
_loadImgNodes = document.querySelectorAll('[data-src]');
self._judgeImages();
window.addEventListener('scroll', function(){
_loadImgNodes = document.querySelectorAll('[data-src]');
self._judgeImages();
}, false);
},
_judgeImages:function() {
var self = this;
if(_loadImgNodes.length){
for(var i = 0; i < _loadImgNodes.length; i++){
if (_loadImgNodes[i].getBoundingClientRect().top < window.innerHeight) {
self._loadImage(_loadImgNodes[i]);
}
}
}
},
_loadImage:function(el){
var self = this;
var img = new Image();
img.src = el.getAttribute('data-src');
el.src = el.getAttribute('data-src');
el.removeAttribute("data-src");
// // 图片加载失败
img.onerror = function() {
el.src = self.errorImage || el.getAttribute('src');
el.removeAttribute("data-src");
};
}
}
window.auiLazyload = auiLazyload;
})(window);

View File

@@ -0,0 +1,243 @@
/**
* aui-list-swipe.js 列表页滑动菜单
* verson 0.0.3
* @author 流浪男 && Beck
* http://www.auicss.com
* @todo more things to abstract, e.g. Loading css etc.
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function(window) {
"use strict";
var translateVal,
friction = 1,
firstTouchX,
firstTouchxy,
firstTouchY,
firstTouch,
firstTouchTime,
touchXDelta,
handleTranslateVal;
var TranslateZero = "translate3d(0,0,0)",
TranslateCent = "translate3d(100%,0,0)";
var swipeHandle = false,
btnWidth = false,
swipeBtnsRight = false;
var isMoved = false,isOpened=false;
var d = false;
var auiListSwipe = function (callback) {
this._init(callback);
}
auiListSwipe.prototype = {
// var self = this;
_init: function(callback){
var self = this;
// var d = document.querySelectorAll("selectors")
window.addEventListener('touchstart', function(event){
if(isOpened){
console.log(1)
// return;
isOpened = false;
return;
}
if(swipeHandle){
event.preventDefault();
self.setTranslate(swipeHandle,"0px");
swipeHandle.classList.remove("aui-swipe-opened");
swipeHandle = false;
return;
}
isMoved = false;
swipeHandle = false;
var target = event.target;
// 过滤点击
for(; target && target !== document; target = target.parentNode){
// console.log(target.classList)
if (target.classList){
if (target.classList.contains("aui-swipe-handle")) {
swipeHandle = target;
firstTouch = event.changedTouches[0];
firstTouchX = firstTouch.clientX;
firstTouchY = firstTouch.clientY;
firstTouchTime = event.timeStamp;
if(swipeHandle.className.indexOf("aui-swipe-opened") > -1){
// console.log(1)
// self.setTranslate(swipeHandle,"0px");
// swipeHandle.classList.remove("aui-swipe-opened");
event.preventDefault();
return;
}else{
// setTimeout(function(){
self.toggleEvents(swipeHandle,callback);
// }, 100)
}
}
}
}
})
// window.addEventListener('touchmove', function(event){
// if(swipeHandle){
// // event.preventDefault();
// // self.setTranslate(swipeHandle,"0px");
// // swipeHandle.classList.remove("aui-swipe-opened");
// // swipeHandle = false;
// // return;
// }
// if(document.querySelector(".aui-swipe-opened")){
// event.preventDefault();
// if(swipeHandle != document.querySelector(".aui-swipe-opened")){
// self.setTranslate(document.querySelector(".aui-swipe-opened"),"0px");
// document.querySelector(".aui-swipe-opened").classList.remove("aui-swipe-opened");
// isOpened = false;
// event.stopPropagation()
// return;
// }
// }
// })
window.addEventListener("touchmove", function(){
})
},
toggleEvents:function(element,callback){
if(!swipeHandle){
return;
}
var self = this;
self.setTransform(element,300);
element.addEventListener('touchstart', function(event){
// if(element.className.indexOf("aui-swipe-opened") > -1){
// self.setTranslate(element,"0px");
// element.classList.remove("aui-swipe-opened");
// return;
// }
//:active样式引起列表背景色冲突
element.parentNode.style.backgroundColor = "#ffffff";
if(!element.nextSibling)return;
},false)
element.addEventListener('touchmove', function(event){
if(document.querySelector(".aui-swipe-opened")){
event.preventDefault();
if(swipeHandle != document.querySelector(".aui-swipe-opened")){
self.setTranslate(document.querySelector(".aui-swipe-opened"),"0px");
document.querySelector(".aui-swipe-opened").classList.remove("aui-swipe-opened");
isOpened = false;
event.stopPropagation()
return;
}
}
// self.getAngle(event)
self.setTransform(element,0);
// if(element.className.indexOf("aui-swipe-opened") > -1)return;
if(element.parentNode.querySelector(".aui-swipe-btn")){
btnWidth = element.parentNode.querySelector(".aui-swipe-btn").offsetWidth;
}
// 列表触摸滑动时如果有已经显示的将其关闭,并退出。
var touchMoveObj = event.changedTouches[0],
touchX = touchMoveObj.clientX;
touchXDelta = -Math.pow(firstTouchX-touchX, 0.85);
handleTranslateVal = touchXDelta/friction;
// touchXDelta = touchX - firstTouchX;
// handleTranslateVal = touchXDelta/0.15;
// console.log(handleTranslateVal)
var moveX = touchMoveObj.clientX - firstTouchX;
var moveY = touchMoveObj.clientY - firstTouchY;
var direction = self.getDirection(moveX,moveY);
var angle = self.getAngle(Math.abs(moveX),Math.abs(moveY));
// console.log(isMoved);
// // 解决滑动屏幕返回时事件冲突,主要针对部分特殊机型
// if(touchMoveObj.screenX < 0){
// firstTouchxy = '';
// }
if(direction == "right"){
isMoved = false;
event.preventDefault();
}
if(direction == "top" || direction == "down"){
isMoved = false;
return;
}
if(angle <= 15 && direction === 'left'){
event.preventDefault()
isMoved = true;
}
// console.log(handleTranslateVal)
// if(isMoved)self.setTranslate(element,""+(handleTranslateVal+10)+"px");
if((event.timeStamp - firstTouchTime) >= 100 && touchXDelta < 0 && touchMoveObj.screenX > 0 && isMoved){
// event.stopPropagation();
// element.classList.add("aui-swipe-moving");
// event.preventDefault();
if(element.className.indexOf("aui-swipe-opened") <= -1){
if((handleTranslateVal+10) > -btnWidth){
self.setTranslate(element,""+(handleTranslateVal+10)+"px");
}
}else{
return
}
}
},false)
element.addEventListener('touchend', function(event){
self.setTransform(element,300);
var touchEndObj = event.changedTouches[0];
var touchEndxy = {
x: touchEndObj.clientX || 0,
y: touchEndObj.clientY || 0
};
var toucheEndX = touchEndObj.clientX - firstTouchX;
var toucheEndY = touchEndObj.clientY - firstTouchY;
var direction = self.getDirection(toucheEndX,toucheEndY);
// element.classList.remove("aui-swipe-moving");
if(direction=='left' && handleTranslateVal < (-btnWidth/3) && isMoved){
self.setTranslate(element,""+-btnWidth+"px");
element.classList.add("aui-swipe-opened");
callback({
'status':true,
'dom':element
})
isOpened = true;
}else{
element.classList.remove("aui-swipe-opened");
self.setTranslate(element,"0px");
isOpened = false;
}
// isMoved = false;
console.log(isOpened)
},true)
},
setTransform : function (el,value){
el.style.webkitTransitionDuration = el.style.transitionDuration = value+'ms';
},
setTranslate : function (el,value){
if(el)el.style.webkitTransform = el.style.transform = "translate3d("+value+",0,0)";
},
getDistance : function(p1, p2, props) {
if (!props) { props = ['x', 'y'];}
var x = p2[props[0]] - p1[props[0]];
var y = p2[props[1]] - p1[props[1]];
return Math.sqrt((x * x) + (y * y));
},
getAngle:function(moveX, moveY){
// var x = Math.abs(x1 - x2);
// var y = Math.abs(y1 - y2);
var z = Math.sqrt(moveX*moveX + moveY*moveY);
return Math.round((Math.asin(moveY / z) / Math.PI*180));
},
getDirection : function(x, y) {
if (x === y) { return '';}
if (Math.abs(x) >= Math.abs(y)) {
return x > 0 ? 'right' : 'left';
} else {
return y > 0 ? 'down' : 'up';
}
}
}
window.auiListSwipe = auiListSwipe;
})(window);

View File

@@ -0,0 +1,221 @@
/**
* aui-list-swipe.js 列表页滑动菜单
* verson 0.0.3
* @author 流浪男 && Beck
* http://www.auicss.com
* @todo more things to abstract, e.g. Loading css etc.
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function(window) {
"use strict";
var translateVal,
friction = 1,
firstTouchX,
firstTouchxy,
firstTouchY,
firstTouch,
firstTouchTime,
touchXDelta,
handleTranslateVal;
var TranslateZero = "translate3d(0,0,0)",
TranslateCent = "translate3d(100%,0,0)";
var swipeHandle = false,
btnWidth = false,
swipeBtnsRight = false;
var isMoved = false,isOpened=false;
var d = false;
var auiListSwipe = function (callback) {
this._init(callback);
}
auiListSwipe.prototype = {
// var self = this;
_init: function(callback){
var self = this;
// var d = document.querySelectorAll("selectors")
window.addEventListener('touchstart', function(event){
// 如果已经打开,将已经打开的关闭
if(isOpened && swipeHandle){
// isOpened = false;
self.setTranslate(swipeHandle,"0px");
swipeHandle.classList.remove("aui-swipe-opened");
return;
}else{
var target = event.target;
// 过滤点击
for(; target && target !== document; target = target.parentNode){
// console.log(target.classList)
if (target.classList){
if (target.classList.contains("aui-swipe-handle")) {
swipeHandle = target;
firstTouch = event.changedTouches[0];
firstTouchX = firstTouch.clientX;
firstTouchY = firstTouch.clientY;
firstTouchTime = event.timeStamp;
if(swipeHandle.className.indexOf("aui-swipe-opened") > -1){
// console.log(1)
// self.setTranslate(swipeHandle,"0px");
// swipeHandle.classList.remove("aui-swipe-opened");
event.preventDefault();
return;
}else{
// setTimeout(function(){
self.toggleEvents(swipeHandle,callback);
// }, 100)
}
}
}
}
}
// if(swipeHandle){
// event.preventDefault();
// self.setTranslate(swipeHandle,"0px");
// swipeHandle.classList.remove("aui-swipe-opened");
// swipeHandle = false;
// return;
// }
// isMoved = false;
// swipeHandle = false;
})
},
toggleEvents:function(element,callback){
if(!swipeHandle){
return;
}
var self = this;
self.setTransform(element,300);
element.addEventListener('touchstart', function(event){
// if(element.className.indexOf("aui-swipe-opened") > -1){
// self.setTranslate(element,"0px");
// element.classList.remove("aui-swipe-opened");
// return;
// }
//:active样式引起列表背景色冲突
element.parentNode.style.backgroundColor = "#ffffff";
if(!element.nextSibling)return;
},false)
element.addEventListener('touchmove', function(event){
event.preventDefault();
if(document.querySelector(".aui-swipe-opened")){
event.preventDefault();
if(swipeHandle != document.querySelector(".aui-swipe-opened")){
self.setTranslate(document.querySelector(".aui-swipe-opened"),"0px");
document.querySelector(".aui-swipe-opened").classList.remove("aui-swipe-opened");
isOpened = false;
event.stopPropagation()
return;
}
}
// self.getAngle(event)
self.setTransform(element,0);
// if(element.className.indexOf("aui-swipe-opened") > -1)return;
if(element.parentNode.querySelector(".aui-swipe-btn")){
btnWidth = element.parentNode.querySelector(".aui-swipe-btn").offsetWidth;
}
// 列表触摸滑动时如果有已经显示的将其关闭,并退出。
var touchMoveObj = event.changedTouches[0],
touchX = touchMoveObj.clientX;
touchXDelta = -Math.pow(firstTouchX-touchX, 0.85);
handleTranslateVal = touchXDelta/friction;
// touchXDelta = touchX - firstTouchX;
// handleTranslateVal = touchXDelta/0.15;
// console.log(handleTranslateVal)
var moveX = touchMoveObj.clientX - firstTouchX;
var moveY = touchMoveObj.clientY - firstTouchY;
var direction = self.getDirection(moveX,moveY);
var angle = self.getAngle(Math.abs(moveX),Math.abs(moveY));
// console.log(isMoved);
// // 解决滑动屏幕返回时事件冲突,主要针对部分特殊机型
// if(touchMoveObj.screenX < 0){
// firstTouchxy = '';
// }
if(direction == "right"){
isMoved = false;
event.preventDefault();
}
if(direction == "top" || direction == "down"){
isMoved = false;
return;
}
if(angle <= 15 && direction === 'left'){
event.preventDefault()
isMoved = true;
}
// console.log(handleTranslateVal)
// if(isMoved)self.setTranslate(element,""+(handleTranslateVal+10)+"px");
if((event.timeStamp - firstTouchTime) >= 100 && touchXDelta < 0 && touchMoveObj.screenX > 0 && isMoved){
// event.stopPropagation();
// element.classList.add("aui-swipe-moving");
// event.preventDefault();
if(element.className.indexOf("aui-swipe-opened") <= -1){
if((handleTranslateVal+10) > -btnWidth){
self.setTranslate(element,""+(handleTranslateVal+10)+"px");
}
}else{
return
}
}
},false)
element.addEventListener('touchend', function(event){
self.setTransform(element,300);
var touchEndObj = event.changedTouches[0];
var touchEndxy = {
x: touchEndObj.clientX || 0,
y: touchEndObj.clientY || 0
};
var toucheEndX = touchEndObj.clientX - firstTouchX;
var toucheEndY = touchEndObj.clientY - firstTouchY;
var direction = self.getDirection(toucheEndX,toucheEndY);
// element.classList.remove("aui-swipe-moving");
if(direction=='left' && handleTranslateVal < (-btnWidth/3) && isMoved){
self.setTranslate(element,""+-btnWidth+"px");
element.classList.add("aui-swipe-opened");
callback({
'status':true,
'dom':element
})
// isOpened = true;
}else{
element.classList.remove("aui-swipe-opened");
self.setTranslate(element,"0px");
isOpened = false;
}
// isMoved = false;
console.log(isOpened)
},true)
},
setTransform : function (el,value){
el.style.webkitTransitionDuration = el.style.transitionDuration = value+'ms';
},
setTranslate : function (el,value){
if(el)el.style.webkitTransform = el.style.transform = "translate3d("+value+",0,0)";
},
getDistance : function(p1, p2, props) {
if (!props) { props = ['x', 'y'];}
var x = p2[props[0]] - p1[props[0]];
var y = p2[props[1]] - p1[props[1]];
return Math.sqrt((x * x) + (y * y));
},
getAngle:function(moveX, moveY){
// var x = Math.abs(x1 - x2);
// var y = Math.abs(y1 - y2);
var z = Math.sqrt(moveX*moveX + moveY*moveY);
return Math.round((Math.asin(moveY / z) / Math.PI*180));
},
getDirection : function(x, y) {
if (x === y) { return '';}
if (Math.abs(x) >= Math.abs(y)) {
return x > 0 ? 'right' : 'left';
} else {
return y > 0 ? 'down' : 'up';
}
}
}
window.auiListSwipe = auiListSwipe;
})(window);

View File

@@ -0,0 +1,135 @@
/**
* aui-popup.js
* @author 流浪男
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function( window, undefined ) {
"use strict";
var auiPopup = function() {
};
var isShow = false;
auiPopup.prototype = {
init: function(params,callback){
this.frameBounces = params.frameBounces;
this.location = params.location;
this.buttons = params.buttons;
this.maskDiv;
this.popupDiv;
var self = this;
self.open(params,callback);
},
open: function(params,callback) {
var buttonsHtml='',locationClass = 'aui-popup-top';
var self = this;
if(self.popupDiv){
self.close();
return;
}
if(!self.maskDiv){
self.maskDiv = document.createElement("div");
self.maskDiv.className = "aui-mask";
document.body.appendChild(self.maskDiv);
}
switch (self.location) {
case "top":
locationClass = 'aui-popup-top';
break;
case "top-left":
locationClass = 'aui-popup-top-left';
break;
case "top-right":
locationClass = 'aui-popup-top-right';
break;
case "bottom":
locationClass = 'aui-popup-bottom';
break;
case "bottom-left":
locationClass = 'aui-popup-bottom-left';
break;
case "bottom-right":
locationClass = 'aui-popup-bottom-right';
break;
default:
locationClass = 'aui-popup-top';
break;
}
self.popupDiv = document.createElement("div");
self.popupDiv.className = "aui-popup "+locationClass;
self.popupDiv.innerHTML = '<div class="aui-popup-arrow"></div><div class="aui-popup-content"></div>';
document.body.appendChild(self.popupDiv);
if(self.buttons && self.buttons.length){
buttonsHtml += '<ul class="aui-list aui-list-noborder">';
for(var i = 0; i < self.buttons.length;i++){
buttonsHtml += '<li class="aui-list-item aui-list-item-middle">';
buttonsHtml += '<div class="aui-list-item-label-icon"><img src="'+self.buttons[i].image+'"></div>';
buttonsHtml += '<div class="aui-list-item-inner">'+self.buttons[i].text+'</div>';
buttonsHtml += '</li>';
}
buttonsHtml += '</ul>';
}
document.querySelector(".aui-popup .aui-popup-content").insertAdjacentHTML('beforeend', buttonsHtml);
var actionsheetHeight = document.querySelector(".aui-popup").offsetHeight;
self.maskDiv.classList.add("aui-mask-in");
self.popupDiv.classList.add("aui-popup-in");
self.popupDiv.addEventListener("touchmove", function(event){
event.preventDefault();
})
self.maskDiv.addEventListener("touchmove", function(event){
event.preventDefault();
})
if(typeof(api) != 'undefined' && typeof(api) == 'object' && self.frameBounces){
api.setFrameAttr({
bounces:false
});
}
var popupButtons = document.querySelectorAll(".aui-popup .aui-list-item");
if(popupButtons && popupButtons.length > 0){
setTimeout(function(){
self.maskDiv.onclick = function(){self.close();return;};
for(var ii = 0; ii < popupButtons.length; ii++){
(function(e){
popupButtons[e].onclick = function(){
if(self.buttons[e].value){
var _value = self.buttons[e].value;
}else{
var _value = null;
}
if(callback){
callback({
buttonIndex: e+1,
buttonTitle: this.textContent,
buttonValue: _value
});
};
self.close();
return;
}
})(ii)
}
}, 350)
}
},
close: function(){
var self = this;
if(typeof(api) != 'undefined' && typeof(api) == 'object' && self.frameBounces){
api.setFrameAttr({
bounces:true
});
}
if(self.popupDiv){
var actionsheetHeight = self.popupDiv.offsetHeight;
self.popupDiv.classList.add("aui-popup-out");
self.maskDiv.style.opacity = 0;
setTimeout(function(){
if(self.maskDiv){
self.maskDiv.parentNode.removeChild(self.maskDiv);
}
self.popupDiv.parentNode.removeChild(self.popupDiv);
self.maskDiv = self.popupDiv = false;
}, 300)
}
}
};
window.auiPopup = auiPopup;
})(window);

View File

@@ -0,0 +1,94 @@
/**
* aui-popup.js
* @author 流浪男
* @todo more things to abstract, e.g. Loading css etc.
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function( window, undefined ) {
"use strict";
var auiPopup = function() {
this._init();
};
var CLASS_MASK = "aui-mask",
CLASS_MASK_IN = 'aui-mask-in',
CLASS_MASK_OUT = 'aui-mask-out',
CLASS_POPUP = 'aui-popup',
CLASS_POPUP_IN = 'aui-popup-in',
CLASS_POPUP_OUT = 'aui-popup-out',
CLASS_POPUP_FOR = 'aui-popup-for';
var __MASK = '.'+CLASS_MASK,
__MASK_IN = '.'+CLASS_MASK_IN,
__MASK_OUT = '.'+CLASS_MASK_OUT,
__POPUP = '.'+CLASS_POPUP,
__POPUP_IN = '.'+CLASS_POPUP_IN,
__POPUP_OUT = '.'+CLASS_POPUP_OUT;
var popupStatus = false;
auiPopup.prototype = {
_init: function() {
var self = this;
var _btn = document.querySelectorAll("["+CLASS_POPUP_FOR+"]");
if(_btn){
for(var i=0;i<_btn.length;i++){
_btn[i].setAttribute("tapmode", "");
_btn[i].onclick = function(e){
var popupId = this.getAttribute(CLASS_POPUP_FOR);
var popupDom = document.getElementById(popupId);
if(popupDom){
if(popupDom.className.indexOf(CLASS_POPUP_IN) > -1 || document.querySelector(__POPUP_IN)){
self.hide(popupDom);
}else{
self.show(popupDom);
}
}else{
return;
}
}
}
}
},
show: function(el){
var self = this;
if(el.className.indexOf(CLASS_POPUP_IN) > -1 || document.querySelector(__POPUP_IN)){
self.hide(el);
return;
}
if(popupStatus) return;
if(!document.querySelector(__MASK)){
var maskHtml = '<div class="aui-mask"></div>';
document.body.insertAdjacentHTML('beforeend', maskHtml);
}
el.style.display = "block";
setTimeout(function(){
document.querySelector(__MASK).classList.add(CLASS_MASK_IN);
el.classList.add(CLASS_POPUP_IN);
popupStatus = true;
}, 10)
document.querySelector(__MASK).addEventListener("touchstart", function(event){
event.preventDefault();
self.hide(el);
})
el.addEventListener("touchmove", function(event){
event.preventDefault();
},false)
},
hide: function(el){
if(!popupStatus) return;
document.querySelector(__MASK).classList.remove(CLASS_MASK_IN);
document.querySelector(__MASK).classList.add(CLASS_MASK_OUT);
if(!document.querySelector(__POPUP_IN))return;
document.querySelector(__POPUP_IN).classList.add(CLASS_POPUP_OUT);
document.querySelector(__POPUP_IN).classList.remove(CLASS_POPUP_IN);
setTimeout(function(){
if(!document.querySelector(__POPUP_OUT))return;
document.querySelector(__POPUP_OUT).style.display = "none";
document.querySelector(__POPUP_OUT).classList.remove(CLASS_POPUP_OUT);
if(document.querySelector(__MASK)){
document.querySelector(__MASK).parentNode.removeChild(document.querySelector(__MASK));
}
popupStatus = false;
}, 300)
}
};
window.auiPopup = auiPopup;
})(window);

View File

@@ -0,0 +1,174 @@
/**
* aui-pull-refresh.js
* @author 流浪男
* @todo more things to abstract, e.g. Loading css etc.
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function(window) {
'use strict';
/**
* Extend obj function
*
* This is an object extender function. It allows us to extend an object
* by passing in additional variables and overwriting the defaults.
*/
var auiPullToRefresh = function (params,callback) {
this.extend(this.params, params);
this._init(callback);
}
var touchYDelta;
var isLoading = false;
var docElem = window.document.documentElement,
loadWrapH,
win = {width: window.innerWidth, height: window.innerHeight},
winfactor= 0.2,
translateVal,
isMoved = false,
firstTouchY, initialScroll;
auiPullToRefresh.prototype = {
params: {
container: document.querySelector('.aui-refresh-content'),
friction: 2.5,
triggerDistance: 100,
callback:false
},
_init : function(callback) {
var self = this;
var loadingHtml = '<div class="aui-refresh-load"><div class="aui-refresh-pull-arrow"></div></div>';
self.params.container.insertAdjacentHTML('afterbegin', loadingHtml);
self.params.container.addEventListener('touchstart', function(ev){
self.touchStart(ev)
});
self.params.container.addEventListener('touchmove', function(ev){
self.touchMove(ev)
});
self.params.container.addEventListener('touchend', function(ev){
self.touchEnd(ev,callback);
});
},
touchStart : function(ev) {
// this.params.container.classList.remove("refreshing");
if (isLoading) {
return;
}
isMoved = false;
this.params.container.style.webkitTransitionDuration =
this.params.container.style.transitionDuration = '0ms';
touchYDelta = '';
var touchobj = ev.changedTouches[0];
// register first touch "y"
firstTouchY = parseInt(touchobj.clientY);
initialScroll = this.scrollY();
},
touchMove : function (ev) {
if (isLoading) {
ev.preventDefault();
return;
}
var self = this;
var moving = function() {
var touchobj = ev.changedTouches[0], // reference first touch point for this event
touchY = parseInt(touchobj.clientY);
touchYDelta = touchY - firstTouchY;
if ( self.scrollY() === 0 && touchYDelta > 0 ) {
ev.preventDefault();
}
if ( initialScroll > 0 || self.scrollY() > 0 || self.scrollY() === 0 && touchYDelta < 0 ) {
firstTouchY = touchY;
return;
}
translateVal = Math.pow(touchYDelta, 0.85);
self.params.container.style.webkitTransform = self.params.container.style.transform = 'translate3d(0, ' + translateVal + 'px, 0)';
isMoved = true;
if(touchYDelta > self.params.triggerDistance){
self.params.container.classList.add("aui-refresh-pull-up");
self.params.container.classList.remove("aui-refresh-pull-down");
}else{
self.params.container.classList.add("aui-refresh-pull-down");
self.params.container.classList.remove("aui-refresh-pull-up");
}
};
this.throttle(moving(), 20);
},
touchEnd : function (ev,callback) {
var self =this;
if (isLoading|| !isMoved) {
isMoved = false;
return;
}
// 根据下拉高度判断是否加载
if( touchYDelta >= this.params.triggerDistance) {
isLoading = true; //正在加载中
ev.preventDefault();
this.params.container.style.webkitTransitionDuration =
this.params.container.style.transitionDuration = '300ms';
this.params.container.style.webkitTransform =
this.params.container.style.transform = 'translate3d(0,60px,0)';
document.querySelector(".aui-refresh-pull-arrow").style.webkitTransitionDuration =
document.querySelector(".aui-refresh-pull-arrow").style.transitionDuration = '0ms';
self.params.container.classList.add("aui-refreshing");
if(callback){
callback({
status:"success"
});
}
}else{
this.params.container.style.webkitTransitionDuration =
this.params.container.style.transitionDuration = '300ms';
this.params.container.style.webkitTransform =
this.params.container.style.transform = 'translate3d(0,0,0)';
if(callback){
callback({
status:"fail"
});
}
}
isMoved = false;
return;
},
cancelLoading : function () {
var self =this;
isLoading = false;
self.params.container.classList.remove("aui-refreshing");
document.querySelector(".aui-refresh-pull-arrow").style.webkitTransitionDuration =
document.querySelector(".aui-refresh-pull-arrow").style.transitionDuration = '300ms';
this.params.container.style.webkitTransitionDuration =
this.params.container.style.transitionDuration = '0ms';
self.params.container.style.webkitTransform =
self.params.container.style.transform = 'translate3d(0,0,0)';
self.params.container.classList.remove("aui-refresh-pull-up");
self.params.container.classList.add("aui-refresh-pull-down");
return;
},
scrollY : function() {
return window.pageYOffset || docElem.scrollTop;
},
throttle : function(fn, delay) {
var allowSample = true;
return function(e) {
if (allowSample) {
allowSample = false;
setTimeout(function() { allowSample = true; }, delay);
fn(e);
}
};
},
winresize : function () {
var resize = function() {
win = {width: window.innerWidth, height: window.innerHeight};
};
throttle(resize(), 10);
},
extend: function(a, b) {
for (var key in b) {
if (b.hasOwnProperty(key)) {
a[key] = b[key];
}
}
return a;
}
}
window.auiPullToRefresh = auiPullToRefresh;
})(window);

View File

@@ -0,0 +1,53 @@
/*
* AUI JAVASCRIPT PLUGIN
* 滑动 aui-range
* Copyright (c) 2015 auicss.com @流浪男 QQ343757327 群344869952
*/
(function( window, undefined ) {
"use strict";
var auiRange = function(params,callback) {
this._init(params,callback);
};
var time=null;
var distance,offsetLeft,tooltipWidth;
auiRange.prototype = {
_init: function(params,callback) {
var self = this;
distance = Math.abs(params.element.max - params.element.min);
offsetLeft = params.element.offsetLeft;
tooltipWidth = params.element.offsetWidth - 28;
params.element.insertAdjacentHTML('afterend','<div class="aui-range-tip aui-hide">'+params.element.value+'</div>');
var scaleWidth = (tooltipWidth / distance) * Math.abs(params.element.value - params.element.min);
params.element.nextSibling.style.left = (offsetLeft + scaleWidth - 11)+'px';
params.element.addEventListener("input",function(){
self._showTip(params.element,callback);
});
params.element.addEventListener("touchmove",function(){
self._showTip(params.element,callback);
});
params.element.addEventListener("touchend",function(){
self._hideTip(params.element);
});
},
_showTip: function(el,callback){
el.nextSibling.classList.remove("aui-hide");
var scaleWidth = (tooltipWidth / distance) * Math.abs(el.value - el.min);
el.nextSibling.style.left = (offsetLeft + scaleWidth - 11)+'px';
el.nextSibling.innerText = el.value;
callback({
value:el.value
});
},
_hideTip : function(el){
if (time) {
clearTimeout(time);
}
time = setTimeout(function() {
el.nextSibling.classList.add("aui-hide");
}, 1500);
}
}
window.auiRange = auiRange;
})(window);

View File

@@ -0,0 +1,66 @@
/**
* aui-scroll.js
* @author 流浪男
* @todo more things to abstract, e.g. Loading css etc.
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function(window) {
'use strict';
var isToBottom = false,isMoved = false;
var auiScroll = function (params,callback) {
this.extend(this.params, params);
this._init(params,callback);
}
auiScroll.prototype = {
params: {
listren:false,
distance: 100
},
_init : function(params,callback) {
var self = this;
if(self.params.listen){
document.body.addEventListener("touchmove", function(e){
self.scroll(callback);
});
document.body.addEventListener("touchend", function(e){
self.scroll(callback);
});
}
window.onscroll = function(){
self.scroll(callback);
}
},
scroll : function (callback) {
var self = this;
var clientHeight = document.documentElement.scrollTop === 0 ? document.body.clientHeight : document.documentElement.clientHeight;
var scrollTop = document.documentElement.scrollTop === 0 ? document.body.scrollTop : document.documentElement.scrollTop;
var scrollHeight = document.documentElement.scrollTop === 0 ? document.body.scrollHeight : document.documentElement.scrollHeight;
if (scrollHeight-scrollTop-self.params.distance <= window.innerHeight) {
isToBottom = true;
if(isToBottom){
callback({
"scrollTop":scrollTop,
"isToBottom":true
})
}
}else{
isToBottom = false;
callback({
"scrollTop":scrollTop,
"isToBottom":false
})
}
},
extend: function(a, b) {
for (var key in b) {
if (b.hasOwnProperty(key)) {
a[key] = b[key];
}
}
return a;
}
}
window.auiScroll = auiScroll;
})(window);

View File

@@ -0,0 +1,119 @@
/**
* aui-sharebox.js
* @author 流浪男
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function( window, undefined ) {
"use strict";
var auiSharebox = function() {
};
var isShow = false;
auiSharebox.prototype = {
init: function(params,callback){
this.frameBounces = params.frameBounces;
this.col = params.col;
this.buttons = params.buttons;
this.cancelTitle = params.cancelTitle;
this.maskDiv;
this.shareBoxDiv;
var self = this;
self.open(params,callback);
},
open: function(params,callback) {
var shareboxHtml='',buttonsHtml = '';
var self = this;
if(self.shareBoxDiv || !self.buttons)return;
if(!self.maskDiv){
self.maskDiv = document.createElement("div");
self.maskDiv.className = "aui-mask";
document.body.appendChild(self.maskDiv);
}
if(!self.col)self.col = 5;
self.shareBoxDiv = document.createElement("div");
self.shareBoxDiv.className = "aui-sharebox aui-grid";
document.body.appendChild(self.shareBoxDiv);
if(self.buttons && self.buttons.length){
buttonsHtml = '<div class="aui-row aui-row-padded">';
for(var i = 0; i < self.buttons.length;i++){
if(self.col == 5){
buttonsHtml += '<div class="aui-col-5 aui-sharebox-btn">';
}else{
buttonsHtml += '<div class="aui-col-xs-'+(12/self.col)+' aui-sharebox-btn">';
}
if(self.buttons[i].image)buttonsHtml += '<img src="'+self.buttons[i].image+'">';
if(self.buttons[i].text)buttonsHtml += '<div class="aui-grid-label">'+self.buttons[i].text+'</div>';
buttonsHtml += '</div>';
}
buttonsHtml += '</div>';
}
if(self.cancelTitle){
buttonsHtml += '<div class="aui-sharebox-close-btn aui-border-t">'+this.cancelTitle+'</div>';
}
self.shareBoxDiv.innerHTML = buttonsHtml;
var actionsheetHeight = self.shareBoxDiv.offsetHeight;
self.maskDiv.classList.add("aui-mask-in");
self.shareBoxDiv.style.webkitTransform = self.shareBoxDiv.style.transform = "translate3d(0,0,0)";
self.shareBoxDiv.style.opacity = 1;
self.shareBoxDiv.addEventListener("touchmove", function(event){
event.preventDefault();
})
self.maskDiv.addEventListener("touchmove", function(event){
event.preventDefault();
})
if(typeof(api) != 'undefined' && typeof(api) == 'object' && self.frameBounces){
api.setFrameAttr({
bounces:false
});
}
var shareboxButtons = document.querySelectorAll(".aui-sharebox-btn");
if(shareboxButtons && shareboxButtons.length > 0){
setTimeout(function(){
self.maskDiv.onclick = function(){self.close();return;};
for(var ii = 0; ii < shareboxButtons.length; ii++){
(function(e){
shareboxButtons[e].onclick = function(){
if(self.buttons[e].value){
var _value = self.buttons[e].value;
}else{
var _value = null;
}
if(callback){
callback({
buttonIndex: e+1,
buttonValue:_value
});
};
self.close();
return;
}
})(ii)
}
}, 350)
}
document.querySelector(".aui-sharebox-close-btn").onclick = function(){self.close();return;};
},
close: function(){
var self = this;
if(typeof(api) != 'undefined' && typeof(api) == 'object' && self.frameBounces){
api.setFrameAttr({
bounces:true
});
}
if(self.shareBoxDiv){
var actionsheetHeight = self.shareBoxDiv.offsetHeight;
self.shareBoxDiv.style.webkitTransform = self.shareBoxDiv.style.transform = "translate3d(0,"+actionsheetHeight+"px,0)";
self.maskDiv.style.opacity = 0;
setTimeout(function(){
if(self.maskDiv){
self.maskDiv.parentNode.removeChild(self.maskDiv);
}
self.shareBoxDiv.parentNode.removeChild(self.shareBoxDiv);
self.maskDiv = self.shareBoxDiv = false;
}, 300)
}
}
};
window.auiSharebox = auiSharebox;
})(window);

View File

@@ -0,0 +1,89 @@
/**
* aui-skin.js
* @author 流浪男
* @todo more things to abstract, e.g. Loading css etc.
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function( window, undefined ) {
"use strict";
var auiSkin = function(params) {
this.extend(this.params, params);
this._init();
};
var fileRef;
auiSkin.prototype = {
params: {
name: "", //主题名字
skinPath: "",//主题路径
default: false, //默认是否立即使用
beginTime: "",//开始时间
endTime: ""//结束时间
},
_init: function() {
var self = this;
if(!self.params.name)return;
if(!self.params.skinPath)return;
fileRef = document.createElement('link');
fileRef.setAttribute("rel","stylesheet");
fileRef.setAttribute("type","text/css");
fileRef.setAttribute("aui-skin-name",self.params.name);
fileRef.setAttribute("href",self.params.skinPath);
if(self.params.default){
document.getElementsByTagName("head")[0].appendChild(fileRef);
}else{
if(!self.params.beginTime || !self.params.endTime)return;
if(!self.check(self.params.beginTime,self.params.endTime))return;
var _date = new Date();
if(_date.getMinutes() < 10){
var nowM = "0"+_date.getMinutes();
}else{
var nowM = _date.getMinutes();
}
var nowTime = _date.getHours()+":"+nowM;
var b = parseInt(self.params.beginTime.replace(":", ''));
var e = parseInt(self.params.endTime.replace(":", ''));
var n = parseInt(nowTime.replace(":", ''));
if(b > e){
if(n >= b || n <= e)self.setSkin();
}else if(b < e){
if(n >= b && n <= e)self.setSkin();
}else{
self.removeSkin();
}
}
},
setSkin:function(){
document.getElementsByTagName("head")[0].appendChild(fileRef);
},
removeSkin:function(){
var self = this;
if(document.querySelector("link[aui-skin-name='"+self.params.name+"']"))
document.querySelector("link[aui-skin-name='"+self.params.name+"']").parentNode.removeChild(document.querySelector("link[aui-skin-name='"+self.params.name+"']"));
},
check:function(beginTime,endTime){
var strb = beginTime.split (":");
if (strb.length != 2)return false;
var stre = endTime.split (":");
if (stre.length != 2)return false;
var b = new Date ();
var e = new Date ();
b.setHours (strb[0]);
b.setMinutes (strb[1]);
e.setHours (stre[0]);
e.setMinutes (stre[1]);
if(strb[0] > 24 || strb[0] < 0 || stre[0] > 24 || stre[0] < 0)return false;
if(strb[1] > 59 || strb[1] < 0 || stre[1] > 59 || stre[1] < 0)return false;
return true;
},
extend: function(a, b) {
for (var key in b) {
if (b.hasOwnProperty(key)) {
a[key] = b[key];
}
}
return a;
}
};
window.auiSkin = auiSkin;
})(window);

View File

@@ -0,0 +1,333 @@
/**
* aui-slide.js 轮播组件
* @author 流浪男
* http://www.auicss.com
* @todo more things to abstract, e.g. Loading css etc.
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function(window) {
"use strict";
var translateVal,
firstTouchX,
firstTouchY,
touchXDelta,
handleTranslateVal;
var touchStartTime; //开始触摸事件
var offsetX,
offsetY,
isScrolling;
// CLASS 组装
var CLASS_SLIDER_NODE = "aui-slide-node",
CLASS_SLIDE_PAGE_WRAP = "aui-slide-page-wrap",
CLASS_SLIDE_PAGE = "aui-slide-page",
CLASS_SLIDE_PAGE_ACTIVE = "aui-slide-page-active",
CLASS_SLIDE_PAGE_DOT = "aui-slide-page-dot",
CLASS_SLIDE_PAGE_LINE = "aui-slide-page-line";
var __SLIDER_NODE = "."+CLASS_SLIDER_NODE,
__SLIDE_PAGE_WRAP = "."+CLASS_SLIDE_PAGE_WRAP,
__SLIDE_PAGE = "."+CLASS_SLIDE_PAGE,
__SLIDE_PAGE_ACTIVE = "."+CLASS_SLIDE_PAGE_ACTIVE;
auiSlide.prototype.options = {
container:'',
width:'auto',
height:'auto',
speed: 300, //滑动速速
autoPlay: 0, //自动播放
pageShow: true, //是否显示分页器
pageStyle: 'dot',
dotPosition: 'center',
friction:1, //阻力
loop:true,
currentPage:false,
PageCount:false
};
auiSlide.prototype._init = function(options) {
extend(this.options, options);
if(!this.options.container){
return;
}
this.index = 0; //索引值
this.continuous = true;//用于判断长度为2时的特殊处理
this.container = this.options.container;
// console.log(this.options.loop);
this.loop = this.options.loop;
this.speed = this.options.speed;
this.container.style.position = "relative";
this.container.style.width = this.options.width+"px";
this.container.style.height = this.options.height+"px";
var element = this.container.children[0];
this.slideWrap = element;
this.slideNodeList = this.slideWrap.querySelectorAll(__SLIDER_NODE);
if(!element || !this.slideNodeList){
return;
}
// this.options.pageCount(this.slideNodeList.length);
this.slideWrapWidth = this.slideWrap.offsetWidth;
this.slideNodeListLength = this.slideNodeList.length;
if (this.slideNodeListLength == 2) { //当长度为2时作特殊处理
element.appendChild(this.slideWrap.children[0].cloneNode(true));
element.appendChild(this.slideWrap.children[1].cloneNode(true));
this.slideWrap = element;
this.slideNodeList = this.slideWrap.querySelectorAll(__SLIDER_NODE);
this.slideNodeListLength = this.slideNodeList.length;
this.continuous = false;
}
for (var i = 0; i < this.slideNodeListLength; i++) {
this.slideNodeList[i] && (this.slideNodeList[i].style.webkitTransform = this.slideNodeList[i].style.transform = "translate3d("+(this.slideWrapWidth*i)+"px,0,0)");
}
if(this.slideNodeListLength > 1) {
if(this.options.pageShow){
this.createPagination(0);
this.setPageDotPosition();
}
if(this.options.autoPlay > 500 && this.loop){
this.autoPlay(0);
}
this.slideWrap.addEventListener('touchstart', this.touchStart.bind(this), false);
this.slideWrap.addEventListener('touchmove', this.touchMove.bind(this), false);
this.slideWrap.addEventListener('touchend', this.touchEnd.bind(this), false);
}
};
// 当分页器为圆点时位置设置
auiSlide.prototype.setPageDotPosition = function(){
var self = this;
var pageDotPosition = self.options.dotPosition;
this.container.querySelector(__SLIDE_PAGE_WRAP).style.textAlign = pageDotPosition;
};
// 自动播放
auiSlide.prototype.autoPlay = function (index) {
var self = this;
setInterval(function(){
self.slideTo(self.getCircle(self.index-1), -self.slideWrapWidth, 0);
self.slideTo(self.getCircle(self.index+2), self.slideWrapWidth, 0);
self.slideTo(self.index, -self.slideWrapWidth, self.options.speed);
self.slideTo(self.getCircle(self.index+1), 0, self.options.speed);
self.index = self.getCircle(self.index+1);
self.setPaginationActive(self.index);
}, self.options.autoPlay)
};
// 设置当前分页
auiSlide.prototype.setPaginationActive = function(index){
var self = this;
if(self.options.currentPage){
self.options.currentPage(index);
}
if(!this.container.querySelector(__SLIDE_PAGE_WRAP)){
return;
}
var pageList = this.container.querySelectorAll(__SLIDE_PAGE);
if(this.container.querySelector(__SLIDE_PAGE+__SLIDE_PAGE_ACTIVE)){
this.container.querySelector(__SLIDE_PAGE+__SLIDE_PAGE_ACTIVE).classList.remove(CLASS_SLIDE_PAGE_ACTIVE);
}
if(!this.continuous){
if(this.index == 3){
pageList[1].classList.add(CLASS_SLIDE_PAGE_ACTIVE);
}else if(this.index==2){
pageList[0].classList.add(CLASS_SLIDE_PAGE_ACTIVE);
}else{
pageList[this.index].classList.add(CLASS_SLIDE_PAGE_ACTIVE);
}
}else{
pageList[this.index].classList.add(CLASS_SLIDE_PAGE_ACTIVE);
}
};
// 创建分页器
auiSlide.prototype.createPagination = function(index){
var self = this;
var pageWrap = this.container.querySelector(__SLIDE_PAGE_WRAP);
if(!pageWrap){
return;
}
pageWrap.innerHTML = '';
var pageShowHtml = '';
switch (self.options.pageStyle) {
case "dot":// 原点
if (!this.continuous) {
for (var i = 0; i < 2; i++) {
pageShowHtml += '<span class="'+CLASS_SLIDE_PAGE+' '+CLASS_SLIDE_PAGE_DOT+'"></span>';
}
}else{
for (var i = 0; i < this.slideNodeListLength; i++) {
pageShowHtml += '<span class="'+CLASS_SLIDE_PAGE+' '+CLASS_SLIDE_PAGE_DOT+'"></span>';
}
}
pageWrap.innerHTML = pageShowHtml;
self.setPaginationActive(0);
break;
case "line":// 线条
if (!this.continuous) {
for (var i = 0; i < 2; i++) {
pageShowHtml += '<span class="'+CLASS_SLIDE_PAGE+' '+CLASS_SLIDE_PAGE_LINE+'" style="width:50%"></span>';
}
}else{
for (var i = 0; i < this.slideNodeListLength; i++) {
pageShowHtml += '<span class="'+CLASS_SLIDE_PAGE+' '+CLASS_SLIDE_PAGE_LINE+'" style="width:'+(100/this.slideNodeListLength)+'%"></span>';
}
}
pageWrap.innerHTML = pageShowHtml;
self.setPaginationActive(0);
break;
}
};
// 总页数
auiSlide.prototype.pageCount = function() {
var self = this;
return self.slideNodeList.length;
};
auiSlide.prototype.touchStart = function(event) {
touchStartTime = new Date() * 1;
firstTouchX = parseInt(event.changedTouches[0].pageX);
firstTouchY = parseInt(event.changedTouches[0].pageY);
isScrolling = undefined;
};
auiSlide.prototype.touchMove = function(event) {
var touchMoveObj = event.changedTouches[0],
touchX = parseInt(touchMoveObj.pageX);
touchXDelta = touchX - firstTouchX;
handleTranslateVal = touchXDelta/this.options.friction;
// 滑动位移
offsetX = parseInt(touchMoveObj.pageX) - firstTouchX;
offsetY = parseInt(touchMoveObj.pageY) - firstTouchY;
var direction = this.getDirection(offsetX,offsetY);
if ( typeof isScrolling == 'undefined') {
isScrolling = !!( isScrolling || Math.abs(offsetX) < Math.abs(offsetY) );
}
if(!isScrolling){
event.preventDefault();
if(!this.loop){ //不循环
if(!this.continuous && this.index==1 && direction=='left'){
return;
}
if(!this.continuous && this.index==0 && direction=='right'){
return;
}
if(this.index == this.slideNodeList.length-1){
if(handleTranslateVal <= 0){
return;
}
this.setTranslate(this.getCircle(this.index-1), handleTranslateVal - this.slideWrapWidth, 0);
}else if(this.index == 0){
if(handleTranslateVal >= 0){
return;
}
this.setTranslate(this.getCircle(this.index+1), this.slideWrapWidth, 0);
}
}
this.setTranslate(this.getCircle(this.index-1), handleTranslateVal - this.slideWrapWidth, 0);
this.setTranslate(this.index, handleTranslateVal , 0);
this.setTranslate(this.getCircle(this.index+1), handleTranslateVal + this.slideWrapWidth, 0);
}
};
auiSlide.prototype.touchEnd = function(event) {
var touchEndObj = event.changedTouches[0];
var touchEndX = parseInt(touchEndObj.pageX) - firstTouchX;
var touchEndY = parseInt(touchEndObj.pageY) - firstTouchY;
var touchEndxy = {
x: touchEndObj.pageX || 0,
y: touchEndObj.pageY || 0
};
var moveDirection = this.getDirection(touchEndX,touchEndY); //滑动方向
var boundary = this.slideWrapWidth/4;
var duration = (new Date() * 1) - touchStartTime;
var isValid = Number(duration) < 250 && Math.abs(offsetX) > 20 || Math.abs(offsetX) > boundary;
if (isScrolling) {
return;
}
if(isValid){
if(offsetX < 0){
if(!this.loop && this.index == this.slideNodeList.length-1){
return;
}
if(!this.loop && !this.continuous && this.index==1){
return;
}
if(offsetX < -boundary && moveDirection == 'left'){
// left
this.slideTo(this.getCircle(this.index-1), -this.slideWrapWidth, 0);
this.slideTo(this.getCircle(this.index+2), this.slideWrapWidth, 0);
this.slideTo(this.index, -this.slideWrapWidth, this.speed);
this.slideTo(this.getCircle(this.index+1), 0, this.speed);
this.index = this.getCircle(this.index+1);
}else{
// this.slideTo(this.getCircle(this.index-1), -this.slideWrapWidth, this.speed);
this.slideTo(this.index, 0, this.speed);
this.slideTo(this.getCircle(this.index+1), this.slideWrapWidth, this.speed);
}
}else if(offsetX > 0){
if(!this.loop && this.index == 0){
return;
}
if(!this.loop && !this.continuous && this.index==0){
return;
}
if(offsetX > boundary && moveDirection == 'right'){
// right
this.slideTo(this.getCircle(this.index+1), this.slideWrapWidth, 0);
this.slideTo(this.getCircle(this.index-2), -this.slideWrapWidth, 0);
this.slideTo(this.index, this.slideWrapWidth, this.speed);
this.slideTo(this.getCircle(this.index-1), 0, this.speed);
this.index = this.getCircle(this.index-1);
}else{
// this.slideTo(this.getCircle(this.index-1), -this.slideWrapWidth, this.speed);
this.slideTo(this.index, 0, this.speed);
this.slideTo(this.getCircle(this.index+1), this.slideWrapWidth, this.speed);
}
}
}else{
if(offsetX){
this.slideTo(this.getCircle(this.index-1), -this.slideWrapWidth, this.speed);
this.slideTo(this.index, 0, this.speed);
this.slideTo(this.getCircle(this.index+1), this.slideWrapWidth, this.speed);
}
}
this.setPaginationActive(this.index);
};
auiSlide.prototype.setTranslate = function (index,dist,speed){
if(this.slideNodeList[index]){
this.slideNodeList[index].style.webkitTransitionDuration =
this.slideNodeList[index].style.transitionDuration = speed + 'ms';
this.slideNodeList[index].style.webkitTransform =
this.slideNodeList[index].style.transform = "translate3d("+dist+"px,0,0)";
}
};
auiSlide.prototype.slideTo = function (index, dist, speed) {
this.setTranslate(index, dist, speed);
// index = dist;
};
auiSlide.prototype.getCircle = function (index) {
return (this.slideNodeListLength + (index % this.slideNodeListLength)) % this.slideNodeListLength;
};
auiSlide.prototype.getDirection = function(x, y) {
if (x === y) { return '';}
if (Math.abs(x) >= Math.abs(y)) {
return x > 0 ? 'right' : 'left';
} else {
return y > 0 ? 'down' : 'up';
}
}
function extend (a, b) {
for (var key in b) {
if (b.hasOwnProperty(key)) {
a[key] = b[key];
}
}
return a;
}
function auiSlide (options) {
this._init(options);
}
window.auiSlide = auiSlide;
})(window);

View File

@@ -0,0 +1,69 @@
/**
* aui-tab.js
* @author 流浪男
* @todo more things to abstract, e.g. Loading css etc.
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function( window, undefined ) {
"use strict";
var auiTab = function(params,callback) {
this.extend(this.params, params);
this._init(callback);
};
var tabItems;
auiTab.prototype = {
params: {
element: false,
index: 1, //默认选中
repeatClick: false //是否允许重复点击
},
_init: function(callback) {
var self = this;
if(!self.params.element || self.params.element.nodeType!=1){
return;
}
tabItems = self.params.element.children;
if(tabItems){
self.setActive();
for(var i=0; i<tabItems.length; i++){
tabItems[i].setAttribute("tapmode","");
tabItems[i].setAttribute("data-item-order",i);
tabItems[i].onclick = function(e){
if(!self.params.repeatClick){
if(this.className.indexOf("aui-active") > -1)return;
}
if(callback){
callback({
index: parseInt(this.getAttribute("data-item-order"))+1,
dom:this
})
};
this.parentNode.querySelector(".aui-active").classList.remove("aui-active");
this.classList.add("aui-active");
}
}
}
},
setRepeat:function(value){
var self = this;
self.params.repeatClick = value ? value : false;
},
setActive: function(index){
var self = this;
index = index ? index : self.params.index;
var _tab = tabItems[index-1];
if(_tab.parentNode.querySelector(".aui-active"))_tab.parentNode.querySelector(".aui-active").classList.remove("aui-active");
_tab.classList.add("aui-active");
},
extend: function(a, b) {
for (var key in b) {
if (b.hasOwnProperty(key)) {
a[key] = b[key];
}
}
return a;
}
};
window.auiTab = auiTab;
})(window);

View File

@@ -0,0 +1,92 @@
/**
* aui-popup.js
* @author 流浪男
* @todo more things to abstract, e.g. Loading css etc.
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function( window, undefined ) {
"use strict";
var auiToast = function() {
// this.create();
};
var isShow = false;
auiToast.prototype = {
create: function(params,callback) {
var self = this;
var toastHtml = '';
switch (params.type) {
case "success":
var iconHtml = '<i class="aui-iconfont aui-icon-correct"></i>';
break;
case "fail":
var iconHtml = '<i class="aui-iconfont aui-icon-close"></i>';
break;
case "custom":
var iconHtml = params.html;
break;
case "loading":
var iconHtml = '<div class="aui-toast-loading"></div>';
break;
}
var titleHtml = params.title ? '<div class="aui-toast-content">'+params.title+'</div>' : '';
toastHtml = '<div class="aui-toast">'+iconHtml+titleHtml+'</div>';
if(document.querySelector(".aui-toast"))return;
document.body.insertAdjacentHTML('beforeend', toastHtml);
var duration = params.duration ? params.duration : "2000";
self.show();
if(params.type == 'loading'){
if(callback){
callback({
status: "success"
});
};
}else{
setTimeout(function(){
self.hide();
}, duration)
}
},
show: function(){
var self = this;
document.querySelector(".aui-toast").style.display = "block";
document.querySelector(".aui-toast").style.marginTop = "-"+Math.round(document.querySelector(".aui-toast").offsetHeight/2)+"px";
if(document.querySelector(".aui-toast"))return;
},
hide: function(){
var self = this;
if(document.querySelector(".aui-toast")){
document.querySelector(".aui-toast").parentNode.removeChild(document.querySelector(".aui-toast"));
}
},
remove: function(){
if(document.querySelector(".aui-dialog"))document.querySelector(".aui-dialog").parentNode.removeChild(document.querySelector(".aui-dialog"));
if(document.querySelector(".aui-mask")){
document.querySelector(".aui-mask").classList.remove("aui-mask-out");
}
return true;
},
success: function(params,callback){
var self = this;
params.type = "success";
return self.create(params,callback);
},
fail: function(params,callback){
var self = this;
params.type = "fail";
return self.create(params,callback);
},
custom:function(params,callback){
var self = this;
params.type = "custom";
return self.create(params,callback);
},
loading:function(params,callback){
var self = this;
params.type = "loading";
return self.create(params,callback);
}
};
window.auiToast = auiToast;
})(window);

View File

@@ -0,0 +1 @@
35a5fb8e-2e97-4fb3-a98f-b9aacda15eec

View File

@@ -0,0 +1 @@
64075eee-f75d-4737-a507-00cce54221f7

View File

@@ -0,0 +1,50 @@
.aui-fold-active {
background: #f4f4f4;
}
.aui-fold-active .aui-fold-content {
display:block;
}
.aui-fold-content {
position: relative;
display: none;
margin: 12px -15px -12px;
padding-left: 15px;
background: #fff;
}
.aui-fold .aui-arrow-right {
position: relative;
display: block;
overflow: hidden;
margin: -12px -15px;
padding: inherit;
white-space: nowrap;
text-overflow: ellipsis;
color: inherit;
}
.aui-fold-ccontent-full {
margin-left: -15px;
margin-right: -15px;
padding: 0;
width: auto;
}
.aui-fold > .aui-arrow-right:after {
content: "\e661";
}
.aui-fold-active > .aui-arrow-right:after{
content: "\e6de"
}
.aui-fold-content .aui-list-view,
.aui-fold-content .aui-user-view {
margin-bottom: 0;
}
.aui-fold-content .aui-list-view:after,
.aui-fold-content .aui-user-view:after,
.aui-fold-content .aui-input-row:first-child:after {
border-top: 0;
}
.aui-fold-content .aui-list-view-cell:last-child:after,
.aui-fold-content .aui-user-view-cell:last-child:after,
.aui-fold-content .aui-input-row:last-child:after,
.aui-fold-content .aui-btn-row:last-child:after {
border-bottom: 0;
}

View File

@@ -0,0 +1,272 @@
/*
* =========================================================================
* APIClud - AUI UI 框架 流浪男 QQ343757327 http://www.auicss.com
* Verson 1.0
* =========================================================================
*/
@charset "UTF-8";
html{
font-family: "Helvetica Neue", Helvetica, sans-serif;
font-size: 20px;
}
html,body {
-webkit-touch-callout:none;
-webkit-text-size-adjust:none;
-webkit-tap-highlight-color:rgba(0, 0, 0, 0);
-webkit-user-select:none;
width: 100%;
}
body {
line-height: 1.5;
font-size: 0.8rem;
color: #212121;
background-color: #f5f5f5;
outline: 0;
}
html,body,header,section,footer,div,ul,ol,li,img,a,span,em,del,legend,center,strong,var,fieldset,form,label,dl,dt,dd,cite,input,hr,time,mark,code,figcaption,figure,textarea,h1,h2,h3,h4,h5,h6,p{
margin:0;
border:0;
padding:0;
font-style:normal;
}
* {
-webkit-box-sizing: border-box;
box-sizing: border-box;
-webkit-user-select: none;
-webkit-tap-highlight-color: transparent;
outline: none;
}
@media only screen and (min-width: 400px) {
html {
font-size: 21.33333333px !important;
}
}
@media only screen and (min-width: 414px) {
html {
font-size: 21px !important;
}
}
@media only screen and (min-width: 480px) {
html {
font-size: 25.6px !important;
}
}
.aui-flex-col,
.aui-flex-row {
display: -webkit-box;
display: -webkit-flex;
display: flex;
-webkit-flex-wrap: wrap;
flex-wrap: wrap;
}
.aui-flex-col:before,
.aui-flex-row:before,
.aui-flex-col:after,
.aui-flex-row:after {
content: " ";
display: -webkit-box;
display: -webkit-flex;
display: flex;
box-sizing: border-box;
}
.aui-flex-col:after,
.aui-flex-row:after {
clear: both;
}
.aui-flex-col {
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-webkit-flex-direction: row;
flex-direction: row;
}
.aui-flex-row {
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-webkit-flex-direction: column;
flex-direction: column;
}
/*栅格*/
.aui-flex-item-1 {
float: left;
width: 8.33333333%;
}
.aui-flex-offset-1 {
margin-left: 8.33333333%;
}
.aui-flex-item-2 {
float: left;
width: 16.66666667%;
}
.aui-flex-offset-2 {
margin-left: 16.66666667%;
}
.aui-flex-item-3 {
float: left;
width: 25%;
}
.aui-flex-offset-3 {
margin-left: 25%;
}
.aui-flex-item-4 {
float: left;
width: 33.33333333%;
}
.aui-flex-offset-4 {
margin-left: 33.33333333%;
}
.aui-flex-item-5 {
float: left;
width: 41.66666667%;
}
.aui-flex-offset-5 {
margin-left: 41.66666667%;
}
.aui-flex-item-6 {
float: left;
width: 50%;
}
.aui-flex-offset-6 {
margin-left: 50%;
}
.aui-flex-item-7 {
float: left;
width: 58.33333333%;
}
.aui-flex-offset-7 {
margin-left: 58.33333333%;
}
.aui-flex-item-8 {
float: left;
width: 66.66666667%;
}
.aui-flex-offset-8 {
margin-left: 66.66666667%;
}
.aui-flex-item-9 {
float: left;
width: 75%;
}
.aui-flex-offset-9 {
margin-left: 75%;
}
.aui-flex-item-10 {
float: left;
width: 83.33333333%;
}
.aui-flex-offset-10 {
margin-left: 83.33333333%;
}
.aui-flex-order-10 {
-webkit-box-ordinal-group: 11;
-webkit-order: 10;
order: 10;
}
.aui-flex-item-11 {
float: left;
width: 91.66666667%;
}
.aui-flex-offset-11 {
margin-left: 91.66666667%;
}
.aui-flex-item-12 {
float: left;
width: 100%;
}
.aui-flex-offset-12 {
margin-left: 100%;
}
.aui-flex-auto {
float: left;
-webkit-box-flex: 1;
-webkit-flex-grow: 1;
flex-grow: 1;
}
.aui-flex-between {
-webkit-box-pack: justify;
-webkit-justify-content: space-between;
justify-content: space-between;
}
/*对齐*/
.aui-flex-col.aui-flex-left {
-webkit-box-pack: start;
-webkit-justify-content: flex-start;
justify-content: flex-start;
}
.aui-flex-col.aui-flex-right {
-webkit-box-pack: end;
-webkit-justify-content: flex-end;
justify-content: flex-end;
}
.aui-flex-col.aui-flex-top {
-webkit-box-align: start;
-webkit-align-items: flex-start;
align-items: flex-start;
}
.aui-flex-col.aui-flex-bottom {
-webkit-box-align: end;
-webkit-align-items: flex-end;
align-items: flex-end;
}
.aui-flex-col.aui-flex-center {
-webkit-box-pack: center;
-webkit-justify-content: center;
justify-content: center;
}
.aui-flex-col.aui-flex-middle {
-webkit-box-align: center;
-webkit-align-items: center;
align-items: center;
}
.aui-flex-row.aui-flex-left {
-webkit-box-align: start;
-webkit-align-items: flex-start;
align-items: flex-start;
}
.aui-flex-row.aui-flex-right {
-webkit-box-align: end;
-webkit-align-items: flex-end;
align-items: flex-end;
}
.aui-flex-row.aui-flex-top {
-webkit-box-pack: start;
-webkit-justify-content: flex-start;
justify-content: flex-start;
}
.aui-flex-row.aui-flex-bottom {
-webkit-box-pack: end;
-webkit-justify-content: flex-end;
justify-content: flex-end;
}
.aui-flex-row.aui-flex-center {
-webkit-box-align: center;
-webkit-align-items: center;
align-items: center;
}
.aui-flex-row.aui-flex-middle {
-webkit-box-pack: center;
-webkit-justify-content: center;
justify-content: center;
}
[class*=aui-flex-item-]{
position: relative;
}
[class*=aui-flex-auto].aui-flex-left {
margin-right: auto;
}
[class*=aui-flex-auto].aui-flex-right {
margin-left: auto;
}
[class*=aui-flex-auto].aui-flex-top {
margin-bottom: auto;
}
[class*=aui-flex-auto].aui-flex-bottom {
margin-top: auto;
}
[class*=aui-flex-auto].aui-flex-center {
margin-left: auto;
margin-right: auto;
}
[class*=aui-flex-auto].aui-flex-middle {
margin-top: auto;
margin-bottom: auto;
}

View File

@@ -0,0 +1,54 @@
/**
* aui-pull-refresh.css 下拉刷新
* verson 0.0.1
* @author 流浪男 && Beck
* http://www.auicss.com
* @todo more things to abstract, e.g. Loading css etc.
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
.aui-refresh-content {
position: relative;
-webkit-overflow-scrolling: touch;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
.aui-refresh-load {
width: 100%;
height: 2.2rem;
position: absolute;
top: -2.2rem;
left: 0;
padding: 0.75rem 0;
}
.aui-refresh-pull-arrow {
width: 1.2rem;
height: 1.2rem;
position: absolute;
left: 50%;
top: 50%;
visibility: visible;
margin-left: -0.6rem;
margin-top: -0.6rem;
background: no-repeat center;
background-image: url('data:image/svg+xml;charset=utf-8,<svg width="200" height="200" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"><path d="M99.225 3.528c8.34 0 15.104 6.763 15.104 15.105 0 8.34-6.766 15.105-15.105 15.105-8.342 0-15.105-6.763-15.105-15.105S90.883 3.528 99.225 3.528zM76.567 48.843h45.315c4.17 0 7.552 3.38 7.552 7.552v5.035c0 4.172-3.382 7.552-7.552 7.552H76.567c-4.172 0-7.553-3.38-7.553-7.552v-5.035c0-4.172 3.38-7.552 7.553-7.552zm-10.07 35.245h65.455c4.17 0 7.552 3.38 7.552 7.552v5.035c0 4.172-3.382 7.552-7.552 7.552H66.497c-4.172 0-7.553-3.38-7.553-7.552V91.64c0-4.172 3.38-7.552 7.553-7.552zm8.044 87.596c-20.397-23.16-45.805-52.352-45.805-52.352h140.98s-25.146 28.735-45.4 51.884c-33.454 38.234-18.118 36.4-49.774.468z" fill="#707070" class="transform-group"/></svg>');
background-size: 1.2rem 1.2rem;
z-index: 10;
-webkit-transform: rotate(0deg) translate3d(0, 0, 0);
transform: rotate(0deg) translate3d(0, 0, 0);
-webkit-transition-duration: 300ms;
transition-duration: 300ms;
}
.aui-refresh-content.aui-refresh-pull-down .aui-refresh-pull-arrow {
-webkit-transform: rotate(0deg) translate3d(0,0,0);
transform: rotate(0deg) translate3d(0,0,0);
}
.aui-refresh-content.aui-refresh-pull-up .aui-refresh-pull-arrow {
-webkit-transform: rotate(180deg) translate3d(0,0,0);
transform: rotate(180deg) translate3d(0,0,0);
}
.aui-refreshing .aui-refresh-pull-arrow{
background-image: url('data:image/svg+xml;charset=utf-8,<svg width="200" height="200" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"><path d="M99.917.167C45.52.167 1.28 43.642.03 97.737c1.153-47.204 37.045-85.08 81.153-85.08 44.834 0 81.184 39.147 81.184 87.426 0 10.346 8.387 18.738 18.733 18.738 10.342 0 18.733-8.39 18.733-18.737C199.833 44.9 155.1.167 99.917.167zm0 199.833c54.395 0 98.637-43.475 99.883-97.57-1.15 47.2-37.042 85.082-81.15 85.082-44.833 0-81.183-39.15-81.183-87.43 0-10.34-8.392-18.732-18.738-18.732C8.39 81.35 0 89.737 0 100.083 0 155.267 44.733 200 99.917 200z" fill="#707070" class="transform-group"/></svg>');
-webkit-animation: rotate 1s 0s linear infinite;
animation: rotate 1s 0s linear infinite;
}

View File

@@ -0,0 +1,277 @@
/*
* ===================================================================================================
* APIClud - AUI UI 框架 流浪男 QQ343757327 http://www.auicss.com
* Verson 2.0.0 自定义主题样式
* explain自定义主题样式可以完成AUI内所有背景、控件颜色、字号等的修改可以方便快速的搭建属于自己项目的一套主题色
* ===================================================================================================
*/
/*body背景色及色值*/
body {
color: #d1d1d1;
background-color: #1a1a1a;
}
p {
color: #757575;
}
a {
color: #0062cc;
}
.aui-text-default {
color: #212121 !important;
}
.aui-bg-default {
background-color: #f5f5f5 !important;
}
/*label*/
.aui-label {
padding: 0.3em 0.35em;
font-size: 0.6rem;
color: #616161;
background-color: #e0e0e0;
}
.aui-label-outlined {
border: 1px solid #d9d9d9;
background-color: transparent;
}
.aui-label .aui-iconfont {
font-size: 0.6rem;
}
/*角标*/
.aui-badge {
color: #ffffff;
background-color: #ff2600;
}
/*按钮*/
.aui-btn {
color: #212121;
background: #e0e0e0;
}
.aui-btn:active {
color: #212121;
background-color: #bdbdbd;
}
.aui-btn-outlined {
background: transparent;
border: 1px solid #bdbdbd;
}
.aui-btn-outlined:active {
background: transparent;
}
/*tab*/
.aui-tab .aui-tab-item {
height: 2.2rem;
line-height: 2.2rem;
font-size: 0.7rem;
color: #212121;
background-color: #ffffff;
}
/*tab选中时样式*/
.aui-tab .aui-tab-item.active {
color: #039be5;
border-bottom: 2px solid #039be5;
}
/*单选选中样式*/
.aui-radio:checked,
.aui-radio.aui-checked {
background-color: #edfb3f;
border: solid 1px #edfb3f;
}
/* 单选选中时中间对号颜色*/
.aui-radio:checked:before,
.aui-radio.aui-checked:before,
.aui-radio:checked:after,
.aui-radio.aui-checked:after {
border-color: #212121;
}
/*多选选中样式*/
.aui-checkbox:checked,
.aui-checkbox.aui-checked {
background-color: #edfb3f;
border: solid 1px #edfb3f;
}
/* 多选选中时中间对号颜色*/
.aui-checkbox:checked:before,
.aui-checkbox.aui-checked:before,
.aui-checkbox:checked:after,
.aui-checkbox.aui-checked:after{
border-color: #212121;
}
/*滑动开关*/
.aui-switch:checked {
border-color: #edfb3f;
background-color: #edfb3f;
}
.aui-switch:before {
background-color: #212121;
}
/*顶部导航栏*/
.aui-bar-nav {
background-color: #00bbd4;
color: #212121;
}
.aui-bar-nav .aui-iconfont {
color: #212121;
}
.aui-bar-nav .aui-btn .aui-iconfont {
color: #212121;
}
/*浅色顶部导航拦*/
.aui-bar-light {
color: #03a9f4;
background-color: #ffffff;
}
.aui-bar.aui-bar-light .aui-iconfont {
color: #03a9f4;
}
.aui-bar.aui-bar-light .aui-btn-outlined {
border-color: #03a9f4;
}
/*底部工具栏*/
.aui-bar-tab {
background-color: #ffffff;
color: #757575;
}
/*底部工具栏选中时颜色*/
.aui-bar-tab .active {
color: #039be5;
}
/*按钮工具栏*/
.aui-bar-btn .aui-bar-btn-item {
border-color: #edfb3f;
color: #edfb3f;
}
.aui-bar-btn .aui-bar-btn-item.active {
background-color: #edfb3f;
color: #ffffff;
}
/*顶部导航存在按钮组工具栏时样式*/
.aui-bar-nav .aui-bar-btn-item {
border-color: #ffffff;
}
/*浅色顶部导航存在按钮组工具栏时样式*/
.aui-bar-nav.aui-bar-light .aui-bar-btn-item {
border-color: #03a9f4;
}
/*顶部导航存在按钮组工具栏时选中样式*/
.aui-bar-nav .aui-bar-btn .aui-bar-btn-item.active {
background-color: #ffffff;
color: #03a9f4;
}
/*浅色顶部导航存在按钮组工具栏时选中样式*/
.aui-bar-nav.aui-bar-light .aui-bar-btn .aui-bar-btn-item.active {
background-color: #03a9f4;
color: #ffffff;
}
/*进度条*/
.aui-progress {
background-color: #f0f0f0;
}
/*进度条色带*/
.aui-progress .aui-progress-bar {
background-color: #eefb3f;
}
/*滑块*/
.aui-range input[type='range']{
/*滑块线条背景色*/
background-color: #f0f0f0;
}
.aui-range input[type='range']::-webkit-slider-thumb {
/*滑块圆圈样式*/
border-color: #edfb3f;
background-color: #edfb3f;
}
/*提示条*/
.aui-tips {
background-color: rgba(0,0,0,.6);
}
/*搜索条*/
.aui-searchbar {
background-color: #ebeced;
color: #9e9e9e;
}
/*列表背景色*/
.aui-list .aui-list-item {
color: #d1d1d1;
background-color: #1a1a1a;
}
/*列表头部*/
.aui-list .aui-list-header {
background-color: #242424;
color: #9e9e9e;
}
/*列表项内Ttitle标题*/
.aui-list .aui-list-item-title {
font-size: 0.8rem;
color: #d1d1d1;
}
/*列表文本区域字体*/
.aui-list .aui-list-item-text {
font-size: 0.7rem;
color: #d1d1d1;
}
/*列表右侧箭头*/
.aui-list-item-arrow:before {
border-color: #edfb3f;
}
/*列表右侧其他信息字体颜色*/
.aui-list .aui-list-item-right,
.aui-list-item-title-row em {
color: #edfb3f;
}
/*列表线条颜色*/
.aui-list:before,
.aui-list:after,
.aui-list .aui-list-item:after,
.aui-list.aui-list-in .aui-list-item-inner:after {
background-color: #242424;
}
/*列表项点击颜色*/
.aui-list .aui-list-item:active {
background-color: #f5f5f5;
}
/*媒体列表布局左(右)媒体宽度控制*/
.aui-list .aui-list-item-media {
width: 4.5rem;
}
/*列表内label、icon字体颜色*/
.aui-list .aui-list-item-label,
.aui-list .aui-list-item-label-icon {
color: #d1d1d1;
}
/*卡片列表顶部字体*/
.aui-card-list-header {
font-size: 0.8rem;
color: #212121;
}
/* 卡片列表内容区域*/
.aui-card-list-content,
.aui-card-list-content-padded {
font-size: 0.7rem;
color: #212121;
}
/*卡片列表底部*/
.aui-card-list-footer {
font-size: 0.7rem;
color: #757575;
}
/*信息条*/
.aui-info {
font-size: 0.7rem;
color: #757575;
background-color: transparent;
}
/*输入框类字体颜色*/
input[type="text"],
input[type="password"],
input[type="search"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="date"],
input[type="datetime-local"],
input[type="time"],
input[type="number"],
select,
textarea {
color: #424242;
}

View File

@@ -0,0 +1,278 @@
/*
* ===================================================================================================
* APIClud - AUI UI 框架 流浪男 QQ343757327 http://www.auicss.com
* Verson 2.0.0 自定义主题样式
* explain自定义主题样式可以完成AUI内所有背景、控件颜色、字号等的修改可以方便快速的搭建属于自己项目的一套主题色
* ===================================================================================================
*/
/*body背景色及色值*/
body {
color: #212121;
background-color: #f5f5f5;
}
p {
color: #757575;
}
a {
color: #0062cc;
}
.aui-text-default {
color: #212121 !important;
}
.aui-bg-default {
background-color: #f5f5f5 !important;
}
/*label*/
.aui-label {
padding: 0.3em 0.35em;
font-size: 0.6rem;
color: #616161;
background-color: #e0e0e0;
}
.aui-label-outlined {
border: 1px solid #d9d9d9;
background-color: transparent;
}
.aui-label .aui-iconfont {
font-size: 0.6rem;
}
/*角标*/
.aui-badge {
color: #ffffff;
background-color: #ff2600;
}
/*按钮*/
.aui-btn {
color: #212121;
background: #e0e0e0;
}
.aui-btn:active {
color: #212121;
background-color: #bdbdbd;
}
.aui-btn-outlined {
background: transparent;
border: 1px solid #bdbdbd;
}
.aui-btn-outlined:active {
background: transparent;
}
/*tab*/
.aui-tab .aui-tab-item {
height: 2.2rem;
line-height: 2.2rem;
font-size: 0.7rem;
color: #212121;
background-color: #ffffff;
}
/*tab选中时样式*/
.aui-tab .aui-tab-item.aui-active {
color: #039be5;
border-bottom: 2px solid #039be5;
}
/*单选选中样式*/
.aui-radio:checked,
.aui-radio.aui-checked {
background-color: #03a9f4;
border: solid 1px #03a9f4;
}
/* 单选选中时中间对号颜色*/
.aui-radio:checked:before,
.aui-radio.aui-checked:before,
.aui-radio:checked:after,
.aui-radio.aui-checked:after {
border-color: #ffffff;
}
/*多选选中样式*/
.aui-checkbox:checked,
.aui-checkbox.aui-checked {
background-color: #03a9f4;
border: solid 1px #03a9f4;
}
/* 多选选中时中间对号颜色*/
.aui-checkbox:checked:before,
.aui-checkbox.aui-checked:before,
.aui-checkbox:checked:after,
.aui-checkbox.aui-checked:after{
border-color: #ffffff;
}
/*滑动开关*/
.aui-switch:checked {
border-color: #03a9f4;
background-color: #03a9f4;
}
/*滑动开关圆圈颜色*/
.aui-switch:before {
background-color: #ffffff;
}
/*顶部导航栏*/
.aui-bar-nav {
background-color: #03a9f4;
color: #ffffff;
}
.aui-bar-nav .aui-iconfont {
color: #ffffff;
}
.aui-bar-nav .aui-btn .aui-iconfont {
color: #ffffff;
}
/*浅色顶部导航拦*/
.aui-bar-light {
color: #03a9f4;
background-color: #ffffff;
}
.aui-bar.aui-bar-light .aui-iconfont {
color: #03a9f4;
}
.aui-bar.aui-bar-light .aui-btn-outlined {
border-color: #03a9f4;
}
/*底部工具栏*/
.aui-bar-tab {
background-color: #ffffff;
color: #757575;
}
/*底部工具栏选中时颜色*/
.aui-bar-tab .aui-active {
color: #039be5;
}
/*按钮工具栏*/
.aui-bar-btn .aui-bar-btn-item {
border-color: #03a9f4;
color: #212121;
}
.aui-bar-btn .aui-bar-btn-item.aui-active {
background-color: #03a9f4;
color: #ffffff;
}
/*顶部导航存在按钮组工具栏时样式*/
.aui-bar-nav .aui-bar-btn-item {
border-color: #ffffff;
}
/*浅色顶部导航存在按钮组工具栏时样式*/
.aui-bar-nav.aui-bar-light .aui-bar-btn-item {
border-color: #03a9f4;
}
/*顶部导航存在按钮组工具栏时选中样式*/
.aui-bar-nav .aui-bar-btn .aui-bar-btn-item.aui-active {
background-color: #ffffff;
color: #03a9f4;
}
/*浅色顶部导航存在按钮组工具栏时选中样式*/
.aui-bar-nav.aui-bar-light .aui-bar-btn .aui-bar-btn-item.aui-active {
background-color: #03a9f4;
color: #ffffff;
}
/*进度条*/
.aui-progress {
background-color: #f0f0f0;
}
/*进度条色带*/
.aui-progress .aui-progress-bar {
background-color: #03a9f4;
}
/*滑块*/
.aui-range input[type='range']{
/*滑块线条背景色*/
background-color: #f0f0f0;
}
.aui-range input[type='range']::-webkit-slider-thumb {
/*滑块圆圈样式*/
border-color: #03a9f4;
background-color: #03a9f4;
}
/*提示条*/
.aui-tips {
background-color: rgba(0,0,0,.6);
}
/*搜索条*/
.aui-searchbar {
background-color: #ebeced;
color: #9e9e9e;
}
/*列表背景色*/
.aui-list .aui-list-item {
color: #212121;
background-color: #ffffff;
}
/*列表头部*/
.aui-list .aui-list-header {
background-color: #e0e0e0;
color: #212121;
}
/*列表项内Ttitle标题*/
.aui-list .aui-list-item-title {
font-size: 0.8rem;
color: #212121;
}
/*列表文本区域字体*/
.aui-list .aui-list-item-text {
font-size: 0.7rem;
color: #757575;
}
/*列表右侧箭头*/
.aui-list-item-arrow:before {
border-color: #dddddd;
}
/*列表右侧其他信息字体颜色*/
.aui-list .aui-list-item-right,
.aui-list-item-title-row em {
color: #757575;
}
/*列表线条颜色*/
.aui-list:before,
.aui-list:after,
.aui-list .aui-list-item:after,
.aui-list.aui-list-in .aui-list-item-inner:after {
background-color: #dddddd;
}
/*列表项点击颜色*/
.aui-list .aui-list-item:active {
background-color: #f5f5f5;
}
/*媒体列表布局左(右)媒体宽度控制*/
.aui-list .aui-list-item-media {
width: 4.5rem;
}
/*列表内label、icon字体颜色*/
.aui-list .aui-list-item-label,
.aui-list .aui-list-item-label-icon {
color: #212121;
}
/*卡片列表顶部字体*/
.aui-card-list-header {
font-size: 0.8rem;
color: #212121;
}
/* 卡片列表内容区域*/
.aui-card-list-content,
.aui-card-list-content-padded {
font-size: 0.7rem;
color: #212121;
}
/*卡片列表底部*/
.aui-card-list-footer {
font-size: 0.7rem;
color: #757575;
}
/*信息条*/
.aui-info {
font-size: 0.7rem;
color: #757575;
background-color: transparent;
}
/*输入框类字体颜色*/
input[type="text"],
input[type="password"],
input[type="search"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="date"],
input[type="datetime-local"],
input[type="time"],
input[type="number"],
select,
textarea {
color: #424242;
}

View File

@@ -0,0 +1,113 @@
/**
* aui-slide.css 轮播样式
* verson 0.0.2
* @author 流浪男
* http://www.auicss.com
* @todo more things to abstract, e.g. Loading css etc.
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
.aui-slide-wrap {
display: block;
position: relative;
list-style: none;
margin: 0;
padding: 0;
height: 100%;
width: 100%;
overflow: hidden;
}
.aui-slide-wrap .aui-slide-node {
position: absolute;
top: 0;
left: 0;
margin: 0;
padding: 0;
width: 100%;
height: 100%;
list-style: none;
overflow: hidden;
background: #ffffff;
}
.aui-slide-node-center {
display: -moz-box;
display: -webkit-box;
display: box;
-moz-box-pack: center;
-webkit-box-pack: center;
box-pack: center;
}
.aui-slide-node-middle {
display: -moz-box;
display: -webkit-box;
display: box;
-moz-box-align: center;
-webkit-box-align: center;
box-align: center;
}
.aui-slide-node img {
width: 100%;
height: 100%;
}
.aui-slide-page-wrap {
width: 100%;
height: 30px;
line-height: 30px;
position: absolute;
padding: 0;
left: 0;
right: 0;
bottom: 5px;
z-index: 9999;
text-align: center;
}
.aui-slide-page-dot {
position: relative;
display: inline-block;
width: 6px;
height: 6px;
border-radius: 50%;
list-style: none;
margin: 5px 3px 0 3px;
background: #c7c7c7;
-webkit-transition: all 0.5s;
transition: all 0.5s;
}
.aui-slide-page-line {
position: absolute;
bottom: -14px;
height: 1px !important;
position: relative;
display: inline-block;
background: #eeeeee;
-webkit-transition: all 0.5s;
transition: all 0.5s;
}
.aui-slide-page-active {
background: #1abc9c;
from { opacity: 0.3; }
to { opacity: 1 }
}
.aui-slide-prev-btn,
.aui-slide-next-btn {
display: inline-block;
width: 50px;
height: 30px;
line-height: 30px;
font-size: 1.2em;
color: #1abc9c;
background: rgba(249,249,249,0.6);
position: relative;
}
.aui-slide-prev-btn {
border-top-left-radius: 15px;
border-bottom-left-radius: 15px;
}
.aui-slide-next-btn {
border-top-right-radius: 15px;
border-bottom-right-radius: 15px;
}
.aui-slide-prev-btn:active,
.aui-slide-next-btn:active {
color: #f1c40f;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1 @@
4c3458d9-deab-4159-91fd-d8437b814cee

View File

@@ -0,0 +1,607 @@
/*
* APICloud JavaScript Library
* Copyright (c) 2014 apicloud.com
*/
(function(window){
var u = {};
var isAndroid = (/android/gi).test(navigator.appVersion);
var uzStorage = function(){
var ls = window.localStorage;
if(isAndroid){
ls = os.localStorage();
}
return ls;
};
function parseArguments(url, data, fnSuc, dataType) {
if (typeof(data) == 'function') {
dataType = fnSuc;
fnSuc = data;
data = undefined;
}
if (typeof(fnSuc) != 'function') {
dataType = fnSuc;
fnSuc = undefined;
}
return {
url: url,
data: data,
fnSuc: fnSuc,
dataType: dataType
};
}
u.trim = function(str){
if(String.prototype.trim){
return str == null ? "" : String.prototype.trim.call(str);
}else{
return str.replace(/(^\s*)|(\s*$)/g, "");
}
};
u.trimAll = function(str){
return str.replace(/\s*/g,'');
};
u.isElement = function(obj){
return !!(obj && obj.nodeType == 1);
};
u.isArray = function(obj){
if(Array.isArray){
return Array.isArray(obj);
}else{
return obj instanceof Array;
}
};
u.isEmptyObject = function(obj){
if(JSON.stringify(obj) === '{}'){
return true;
}
return false;
};
u.addEvt = function(el, name, fn, useCapture){
if(!u.isElement(el)){
console.warn('$api.addEvt Function need el param, el param must be DOM Element');
return;
}
useCapture = useCapture || false;
if(el.addEventListener) {
el.addEventListener(name, fn, useCapture);
}
};
u.rmEvt = function(el, name, fn, useCapture){
if(!u.isElement(el)){
console.warn('$api.rmEvt Function need el param, el param must be DOM Element');
return;
}
useCapture = useCapture || false;
if (el.removeEventListener) {
el.removeEventListener(name, fn, useCapture);
}
};
u.one = function(el, name, fn, useCapture){
if(!u.isElement(el)){
console.warn('$api.one Function need el param, el param must be DOM Element');
return;
}
useCapture = useCapture || false;
var that = this;
var cb = function(){
fn && fn();
that.rmEvt(el, name, cb, useCapture);
};
that.addEvt(el, name, cb, useCapture);
};
u.dom = function(el, selector){
if(arguments.length === 1 && typeof arguments[0] == 'string'){
if(document.querySelector){
return document.querySelector(arguments[0]);
}
}else if(arguments.length === 2){
if(el.querySelector){
return el.querySelector(selector);
}
}
};
u.domAll = function(el, selector){
if(arguments.length === 1 && typeof arguments[0] == 'string'){
if(document.querySelectorAll){
return document.querySelectorAll(arguments[0]);
}
}else if(arguments.length === 2){
if(el.querySelectorAll){
return el.querySelectorAll(selector);
}
}
};
u.byId = function(id){
return document.getElementById(id);
};
u.first = function(el, selector){
if(arguments.length === 1){
if(!u.isElement(el)){
console.warn('$api.first Function need el param, el param must be DOM Element');
return;
}
return el.children[0];
}
if(arguments.length === 2){
return this.dom(el, selector+':first-child');
}
};
u.last = function(el, selector){
if(arguments.length === 1){
if(!u.isElement(el)){
console.warn('$api.last Function need el param, el param must be DOM Element');
return;
}
var children = el.children;
return children[children.length - 1];
}
if(arguments.length === 2){
return this.dom(el, selector+':last-child');
}
};
u.eq = function(el, index){
return this.dom(el, ':nth-child('+ index +')');
};
u.not = function(el, selector){
return this.domAll(el, ':not('+ selector +')');
};
u.prev = function(el){
if(!u.isElement(el)){
console.warn('$api.prev Function need el param, el param must be DOM Element');
return;
}
var node = el.previousSibling;
if(node.nodeType && node.nodeType === 3){
node = node.previousSibling;
return node;
}
};
u.next = function(el){
if(!u.isElement(el)){
console.warn('$api.next Function need el param, el param must be DOM Element');
return;
}
var node = el.nextSibling;
if(node.nodeType && node.nodeType === 3){
node = node.nextSibling;
return node;
}
};
u.closest = function(el, selector){
if(!u.isElement(el)){
console.warn('$api.closest Function need el param, el param must be DOM Element');
return;
}
var doms, targetDom;
var isSame = function(doms, el){
var i = 0, len = doms.length;
for(i; i<len; i++){
if(doms[i].isEqualNode(el)){
return doms[i];
}
}
return false;
};
var traversal = function(el, selector){
doms = u.domAll(el.parentNode, selector);
targetDom = isSame(doms, el);
while(!targetDom){
el = el.parentNode;
if(el != null && el.nodeType == el.DOCUMENT_NODE){
return false;
}
traversal(el, selector);
}
return targetDom;
};
return traversal(el, selector);
};
u.contains = function(parent,el){
var mark = false;
if(el === parent){
mark = true;
return mark;
}else{
do{
el = el.parentNode;
if(el === parent){
mark = true;
return mark;
}
}while(el === document.body || el === document.documentElement);
return mark;
}
};
u.remove = function(el){
if(el && el.parentNode){
el.parentNode.removeChild(el);
}
};
u.attr = function(el, name, value){
if(!u.isElement(el)){
console.warn('$api.attr Function need el param, el param must be DOM Element');
return;
}
if(arguments.length == 2){
return el.getAttribute(name);
}else if(arguments.length == 3){
el.setAttribute(name, value);
return el;
}
};
u.removeAttr = function(el, name){
if(!u.isElement(el)){
console.warn('$api.removeAttr Function need el param, el param must be DOM Element');
return;
}
if(arguments.length === 2){
el.removeAttribute(name);
}
};
u.hasCls = function(el, cls){
if(!u.isElement(el)){
console.warn('$api.hasCls Function need el param, el param must be DOM Element');
return;
}
if(el.className.indexOf(cls) > -1){
return true;
}else{
return false;
}
};
u.addCls = function(el, cls){
if(!u.isElement(el)){
console.warn('$api.addCls Function need el param, el param must be DOM Element');
return;
}
if('classList' in el){
el.classList.add(cls);
}else{
var preCls = el.className;
var newCls = preCls +' '+ cls;
el.className = newCls;
}
return el;
};
u.removeCls = function(el, cls){
if(!u.isElement(el)){
console.warn('$api.removeCls Function need el param, el param must be DOM Element');
return;
}
if('classList' in el){
el.classList.remove(cls);
}else{
var preCls = el.className;
var newCls = preCls.replace(cls, '');
el.className = newCls;
}
return el;
};
u.toggleCls = function(el, cls){
if(!u.isElement(el)){
console.warn('$api.toggleCls Function need el param, el param must be DOM Element');
return;
}
if('classList' in el){
el.classList.toggle(cls);
}else{
if(u.hasCls(el, cls)){
u.removeCls(el, cls);
}else{
u.addCls(el, cls);
}
}
return el;
};
u.val = function(el, val){
if(!u.isElement(el)){
console.warn('$api.val Function need el param, el param must be DOM Element');
return;
}
if(arguments.length === 1){
switch(el.tagName){
case 'SELECT':
var value = el.options[el.selectedIndex].value;
return value;
break;
case 'INPUT':
return el.value;
break;
case 'TEXTAREA':
return el.value;
break;
}
}
if(arguments.length === 2){
switch(el.tagName){
case 'SELECT':
el.options[el.selectedIndex].value = val;
return el;
break;
case 'INPUT':
el.value = val;
return el;
break;
case 'TEXTAREA':
el.value = val;
return el;
break;
}
}
};
u.prepend = function(el, html){
if(!u.isElement(el)){
console.warn('$api.prepend Function need el param, el param must be DOM Element');
return;
}
el.insertAdjacentHTML('afterbegin', html);
return el;
};
u.append = function(el, html){
if(!u.isElement(el)){
console.warn('$api.append Function need el param, el param must be DOM Element');
return;
}
el.insertAdjacentHTML('beforeend', html);
return el;
};
u.before = function(el, html){
if(!u.isElement(el)){
console.warn('$api.before Function need el param, el param must be DOM Element');
return;
}
el.insertAdjacentHTML('beforebegin', html);
return el;
};
u.after = function(el, html){
if(!u.isElement(el)){
console.warn('$api.after Function need el param, el param must be DOM Element');
return;
}
el.insertAdjacentHTML('afterend', html);
return el;
};
u.html = function(el, html){
if(!u.isElement(el)){
console.warn('$api.html Function need el param, el param must be DOM Element');
return;
}
if(arguments.length === 1){
return el.innerHTML;
}else if(arguments.length === 2){
el.innerHTML = html;
return el;
}
};
u.text = function(el, txt){
if(!u.isElement(el)){
console.warn('$api.text Function need el param, el param must be DOM Element');
return;
}
if(arguments.length === 1){
return el.textContent;
}else if(arguments.length === 2){
el.textContent = txt;
return el;
}
};
u.offset = function(el){
if(!u.isElement(el)){
console.warn('$api.offset Function need el param, el param must be DOM Element');
return;
}
var sl = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft);
var st = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
var rect = el.getBoundingClientRect();
return {
l: rect.left + sl,
t: rect.top + st,
w: el.offsetWidth,
h: el.offsetHeight
};
};
u.css = function(el, css){
if(!u.isElement(el)){
console.warn('$api.css Function need el param, el param must be DOM Element');
return;
}
if(typeof css == 'string' && css.indexOf(':') > 0){
el.style && (el.style.cssText += ';' + css);
}
};
u.cssVal = function(el, prop){
if(!u.isElement(el)){
console.warn('$api.cssVal Function need el param, el param must be DOM Element');
return;
}
if(arguments.length === 2){
var computedStyle = window.getComputedStyle(el, null);
return computedStyle.getPropertyValue(prop);
}
};
u.jsonToStr = function(json){
if(typeof json === 'object'){
return JSON && JSON.stringify(json);
}
};
u.strToJson = function(str){
if(typeof str === 'string'){
return JSON && JSON.parse(str);
}
};
u.setStorage = function(key, value){
if(arguments.length === 2){
var v = value;
if(typeof v == 'object'){
v = JSON.stringify(v);
v = 'obj-'+ v;
}else{
v = 'str-'+ v;
}
var ls = uzStorage();
if(ls){
ls.setItem(key, v);
}
}
};
u.getStorage = function(key){
var ls = uzStorage();
if(ls){
var v = ls.getItem(key);
if(!v){return;}
if(v.indexOf('obj-') === 0){
v = v.slice(4);
return JSON.parse(v);
}else if(v.indexOf('str-') === 0){
return v.slice(4);
}
}
};
u.rmStorage = function(key){
var ls = uzStorage();
if(ls && key){
ls.removeItem(key);
}
};
u.clearStorage = function(){
var ls = uzStorage();
if(ls){
ls.clear();
}
};
/*by king*/
u.fixIos7Bar = function(el){
if(!u.isElement(el)){
console.warn('$api.fixIos7Bar Function need el param, el param must be DOM Element');
return;
}
var strDM = api.systemType;
if (strDM == 'ios') {
var strSV = api.systemVersion;
var numSV = parseInt(strSV,10);
var fullScreen = api.fullScreen;
var iOS7StatusBarAppearance = api.iOS7StatusBarAppearance;
if (numSV >= 7 && !fullScreen && iOS7StatusBarAppearance) {
el.style.paddingTop = '20px';
}
}
};
u.fixStatusBar = function(el){
if(!u.isElement(el)){
console.warn('$api.fixStatusBar Function need el param, el param must be DOM Element');
return;
}
var sysType = api.systemType;
if(sysType == 'ios'){
u.fixIos7Bar(el);
}else if(sysType == 'android'){
var ver = api.systemVersion;
ver = parseFloat(ver);
if(ver >= 4.4){
el.style.paddingTop = '25px';
}
}
};
u.toast = function(title, text, time){
var opts = {};
var show = function(opts, time){
api.showProgress(opts);
setTimeout(function(){
api.hideProgress();
},time);
};
if(arguments.length === 1){
var time = time || 500;
if(typeof title === 'number'){
time = title;
}else{
opts.title = title+'';
}
show(opts, time);
}else if(arguments.length === 2){
var time = time || 500;
var text = text;
if(typeof text === "number"){
var tmp = text;
time = tmp;
text = null;
}
if(title){
opts.title = title;
}
if(text){
opts.text = text;
}
show(opts, time);
}
if(title){
opts.title = title;
}
if(text){
opts.text = text;
}
time = time || 500;
show(opts, time);
};
u.post = function(/*url,data,fnSuc,dataType*/){
var argsToJson = parseArguments.apply(null, arguments);
var json = {};
var fnSuc = argsToJson.fnSuc;
argsToJson.url && (json.url = argsToJson.url);
argsToJson.data && (json.data = argsToJson.data);
if(argsToJson.dataType){
var type = argsToJson.dataType.toLowerCase();
if (type == 'text'||type == 'json') {
json.dataType = type;
}
}else{
json.dataType = 'json';
}
json.method = 'post';
api.ajax(json,
function(ret,err){
if (ret) {
fnSuc && fnSuc(ret);
}
}
);
};
u.get = function(/*url,fnSuc,dataType*/){
var argsToJson = parseArguments.apply(null, arguments);
var json = {};
var fnSuc = argsToJson.fnSuc;
argsToJson.url && (json.url = argsToJson.url);
//argsToJson.data && (json.data = argsToJson.data);
if(argsToJson.dataType){
var type = argsToJson.dataType.toLowerCase();
if (type == 'text'||type == 'json') {
json.dataType = type;
}
}else{
json.dataType = 'text';
}
json.method = 'get';
api.ajax(json,
function(ret,err){
if (ret) {
fnSuc && fnSuc(ret);
}
}
);
};
/*end*/
window.$api = u;
})(window);

View File

@@ -0,0 +1,118 @@
/**
* aui-actionsheet.js
* @author 流浪男
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function( window, undefined ) {
"use strict";
var auiActionsheet = function() {
};
var isShow = false;
auiActionsheet.prototype = {
init: function(params,callback){
this.frameBounces = params.frameBounces;
this.title = params.title;
this.buttons = params.buttons;
this.cancelTitle = params.cancelTitle;
this.destructiveTitle = params.destructiveTitle;
this.maskDiv;
this.actionsheetDiv;
var self = this;
self.open(params,callback);
},
open: function(params,callback) {
var titleHtml='',buttonsHtml='',destructiveHtml='',cancelHtml='',btnHtml='';
var self = this;
if(self.actionsheetDiv || (!self.title && !self.buttons && !self.cancelTitle && !self.destructiveTitle))return;
if(!self.maskDiv){
self.maskDiv = document.createElement("div");
self.maskDiv.className = "aui-mask";
document.body.appendChild(self.maskDiv);
}
self.actionsheetDiv = document.createElement("div");
self.actionsheetDiv.className = "aui-actionsheet";
document.body.appendChild(self.actionsheetDiv);
if(self.title){
titleHtml = '<div class="aui-actionsheet-title aui-border-b aui-font-size-12">'+self.title+'</div>';
}
if(self.buttons && self.buttons.length){
for(var i = 0; i < self.buttons.length;i++){
if(i == self.buttons.length-1){
buttonsHtml += '<div class="aui-actionsheet-btn-item">'+self.buttons[i]+'</div>';
}else{
buttonsHtml += '<div class="aui-actionsheet-btn-item aui-border-b">'+self.buttons[i]+'</div>';
}
}
}
if(self.destructiveTitle){
destructiveHtml = '<div class="aui-actionsheet-btn-item aui-border-t aui-text-danger">'+self.destructiveTitle+'</div>';
}else{
var destructiveHtml = '';
}
if(self.title || (self.buttons && self.buttons.length)){
btnHtml = '<div class="aui-actionsheet-btn">'+titleHtml+''+buttonsHtml+''+destructiveHtml+'</div>';
}
if(self.cancelTitle){
cancelHtml = '<div class="aui-actionsheet-btn"><div class="aui-actionsheet-btn-item">'+self.cancelTitle+'</div></div>';
}
self.actionsheetDiv.insertAdjacentHTML('beforeend', btnHtml+cancelHtml);
var actionsheetHeight = document.querySelector(".aui-actionsheet").offsetHeight;
self.maskDiv.classList.add("aui-mask-in");
self.actionsheetDiv.style.webkitTransform = self.actionsheetDiv.style.transform = "translate3d(0,0,0)";
self.actionsheetDiv.style.opacity = 1;
self.actionsheetDiv.addEventListener("touchmove", function(event){
event.preventDefault();
})
self.maskDiv.addEventListener("touchmove", function(event){
event.preventDefault();
})
if(typeof(api) != 'undefined' && typeof(api) == 'object' && self.frameBounces){
api.setFrameAttr({
bounces:false
});
}
var actionsheetButtons = document.querySelectorAll(".aui-actionsheet-btn-item");
if(actionsheetButtons && actionsheetButtons.length > 0){
setTimeout(function(){
self.maskDiv.onclick = function(){self.close();return;};
for(var ii = 0; ii < actionsheetButtons.length; ii++){
(function(e){
actionsheetButtons[e].onclick = function(){
if(callback){
callback({
buttonIndex: e+1,
buttonTitle: this.textContent
});
};
self.close();
return;
}
})(ii)
}
}, 350)
}
},
close: function(){
var self = this;
if(typeof(api) != 'undefined' && typeof(api) == 'object' && self.frameBounces){
api.setFrameAttr({
bounces:true
});
}
if(self.actionsheetDiv){
var actionsheetHeight = self.actionsheetDiv.offsetHeight;
self.actionsheetDiv.style.webkitTransform = self.actionsheetDiv.style.transform = "translate3d(0,"+actionsheetHeight+"px,0)";
self.maskDiv.style.opacity = 0;
setTimeout(function(){
if(self.maskDiv){
self.maskDiv.parentNode.removeChild(self.maskDiv);
}
self.actionsheetDiv.parentNode.removeChild(self.actionsheetDiv);
self.actionsheetDiv = self.maskDiv = false;
}, 300)
}
}
};
window.auiActionsheet = auiActionsheet;
})(window);

View File

@@ -0,0 +1,44 @@
/**
* aui-collapse.js
* @author 流浪男
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function( window, undefined ) {
"use strict";
var auiCollapse = function(params) {
this.init(params);
};
auiCollapse.prototype = {
init: function(params,callback){
var collapseHeader = document.querySelectorAll(".aui-collapse-header");
if(collapseHeader.length){
for(var i=0;i<collapseHeader.length;i++){
(function(e){
collapseHeader[e].onclick = function(){
if(collapseHeader[e].nextSibling.nextElementSibling.className.indexOf("aui-collapse-content") > -1){
if(collapseHeader[e].nextSibling.nextElementSibling.className.indexOf("aui-show") > -1){
collapseHeader[e].nextSibling.nextElementSibling.classList.remove("aui-show");
collapseHeader[e].classList.remove("aui-active");
}else{
if(params.autoHide){
if(document.querySelector(".aui-collapse-header.aui-active")){
document.querySelector(".aui-collapse-header.aui-active").classList.remove("aui-active");
}
if(document.querySelector(".aui-collapse-content.aui-show")){
document.querySelector(".aui-collapse-content.aui-show").classList.remove("aui-show");
}
}
collapseHeader[e].nextSibling.nextElementSibling.classList.toggle("aui-show");
collapseHeader[e].classList.toggle("aui-active");
}
}
}
})(i)
}
}
}
};
window.auiCollapse = auiCollapse;
})(window);

View File

@@ -0,0 +1,125 @@
/**
* aui-dialog.js
* @author 流浪男
* @todo more things to abstract, e.g. Loading css etc.
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function( window, undefined ) {
"use strict";
var auiDialog = function() {
};
var isShow = false;
auiDialog.prototype = {
params: {
title:'',
msg:'',
buttons: ['取消','确定'],
input:false
},
create: function(params,callback) {
var self = this;
var dialogHtml = '';
var buttonsHtml = '';
var headerHtml = params.title ? '<div class="aui-dialog-header">' + params.title + '</div>' : '<div class="aui-dialog-header">' + self.params.title + '</div>';
if(params.input){
params.text = params.text ? params.text: '';
var msgHtml = '<div class="aui-dialog-body"><input type="text" placeholder="'+params.text+'"></div>';
}else{
var msgHtml = params.msg ? '<div class="aui-dialog-body">' + params.msg + '</div>' : '<div class="aui-dialog-body">' + self.params.msg + '</div>';
}
var buttons = params.buttons ? params.buttons : self.params.buttons;
if (buttons && buttons.length > 0) {
for (var i = 0; i < buttons.length; i++) {
buttonsHtml += '<div class="aui-dialog-btn" tapmode button-index="'+i+'">'+buttons[i]+'</div>';
}
}
var footerHtml = '<div class="aui-dialog-footer">'+buttonsHtml+'</div>';
dialogHtml = '<div class="aui-dialog">'+headerHtml+msgHtml+footerHtml+'</div>';
document.body.insertAdjacentHTML('beforeend', dialogHtml);
// listen buttons click
var dialogButtons = document.querySelectorAll(".aui-dialog-btn");
if(dialogButtons && dialogButtons.length > 0){
for(var ii = 0; ii < dialogButtons.length; ii++){
dialogButtons[ii].onclick = function(){
if(callback){
if(params.input){
callback({
buttonIndex: parseInt(this.getAttribute("button-index"))+1,
text: document.querySelector("input").value
});
}else{
callback({
buttonIndex: parseInt(this.getAttribute("button-index"))+1
});
}
};
self.close();
return;
}
}
}
self.open();
},
open: function(){
if(!document.querySelector(".aui-dialog"))return;
var self = this;
document.querySelector(".aui-dialog").style.marginTop = "-"+Math.round(document.querySelector(".aui-dialog").offsetHeight/2)+"px";
if(!document.querySelector(".aui-mask")){
var maskHtml = '<div class="aui-mask"></div>';
document.body.insertAdjacentHTML('beforeend', maskHtml);
}
// document.querySelector(".aui-dialog").style.display = "block";
setTimeout(function(){
document.querySelector(".aui-dialog").classList.add("aui-dialog-in");
document.querySelector(".aui-mask").classList.add("aui-mask-in");
document.querySelector(".aui-dialog").classList.add("aui-dialog-in");
}, 10)
document.querySelector(".aui-mask").addEventListener("touchmove", function(e){
e.preventDefault();
})
document.querySelector(".aui-dialog").addEventListener("touchmove", function(e){
e.preventDefault();
})
return;
},
close: function(){
var self = this;
document.querySelector(".aui-mask").classList.remove("aui-mask-in");
document.querySelector(".aui-dialog").classList.remove("aui-dialog-in");
document.querySelector(".aui-dialog").classList.add("aui-dialog-out");
if (document.querySelector(".aui-dialog:not(.aui-dialog-out)")) {
setTimeout(function(){
if(document.querySelector(".aui-dialog"))document.querySelector(".aui-dialog").parentNode.removeChild(document.querySelector(".aui-dialog"));
self.open();
return true;
},200)
}else{
document.querySelector(".aui-mask").classList.add("aui-mask-out");
document.querySelector(".aui-dialog").addEventListener("webkitTransitionEnd", function(){
self.remove();
})
document.querySelector(".aui-dialog").addEventListener("transitionend", function(){
self.remove();
})
}
},
remove: function(){
if(document.querySelector(".aui-dialog"))document.querySelector(".aui-dialog").parentNode.removeChild(document.querySelector(".aui-dialog"));
if(document.querySelector(".aui-mask")){
document.querySelector(".aui-mask").classList.remove("aui-mask-out");
}
return true;
},
alert: function(params,callback){
var self = this;
return self.create(params,callback);
},
prompt:function(params,callback){
var self = this;
params.input = true;
return self.create(params,callback);
}
};
window.auiDialog = auiDialog;
})(window);

View File

@@ -0,0 +1,48 @@
/**
* aui-lazyload.js
* @author 流浪男
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function( window, undefined ) {
"use strict";
var _loadImgNodes;
var auiLazyload = function(params) {
this.errorImage = params.errorImage||false;
this._init(params);
};
auiLazyload.prototype = {
_init: function(params) {
var self = this;
_loadImgNodes = document.querySelectorAll('[data-src]');
self._judgeImages();
window.addEventListener('scroll', function(){
_loadImgNodes = document.querySelectorAll('[data-src]');
self._judgeImages();
}, false);
},
_judgeImages:function() {
var self = this;
if(_loadImgNodes.length){
for(var i = 0; i < _loadImgNodes.length; i++){
if (_loadImgNodes[i].getBoundingClientRect().top < window.innerHeight) {
self._loadImage(_loadImgNodes[i]);
}
}
}
},
_loadImage:function(el){
var self = this;
var img = new Image();
img.src = el.getAttribute('data-src');
el.src = el.getAttribute('data-src');
el.removeAttribute("data-src");
// // 图片加载失败
img.onerror = function() {
el.src = self.errorImage || el.getAttribute('src');
el.removeAttribute("data-src");
};
}
}
window.auiLazyload = auiLazyload;
})(window);

View File

@@ -0,0 +1,243 @@
/**
* aui-list-swipe.js 列表页滑动菜单
* verson 0.0.3
* @author 流浪男 && Beck
* http://www.auicss.com
* @todo more things to abstract, e.g. Loading css etc.
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function(window) {
"use strict";
var translateVal,
friction = 1,
firstTouchX,
firstTouchxy,
firstTouchY,
firstTouch,
firstTouchTime,
touchXDelta,
handleTranslateVal;
var TranslateZero = "translate3d(0,0,0)",
TranslateCent = "translate3d(100%,0,0)";
var swipeHandle = false,
btnWidth = false,
swipeBtnsRight = false;
var isMoved = false,isOpened=false;
var d = false;
var auiListSwipe = function (callback) {
this._init(callback);
}
auiListSwipe.prototype = {
// var self = this;
_init: function(callback){
var self = this;
// var d = document.querySelectorAll("selectors")
window.addEventListener('touchstart', function(event){
if(isOpened){
console.log(1)
// return;
isOpened = false;
return;
}
if(swipeHandle){
event.preventDefault();
self.setTranslate(swipeHandle,"0px");
swipeHandle.classList.remove("aui-swipe-opened");
swipeHandle = false;
return;
}
isMoved = false;
swipeHandle = false;
var target = event.target;
// 过滤点击
for(; target && target !== document; target = target.parentNode){
// console.log(target.classList)
if (target.classList){
if (target.classList.contains("aui-swipe-handle")) {
swipeHandle = target;
firstTouch = event.changedTouches[0];
firstTouchX = firstTouch.clientX;
firstTouchY = firstTouch.clientY;
firstTouchTime = event.timeStamp;
if(swipeHandle.className.indexOf("aui-swipe-opened") > -1){
// console.log(1)
// self.setTranslate(swipeHandle,"0px");
// swipeHandle.classList.remove("aui-swipe-opened");
event.preventDefault();
return;
}else{
// setTimeout(function(){
self.toggleEvents(swipeHandle,callback);
// }, 100)
}
}
}
}
})
// window.addEventListener('touchmove', function(event){
// if(swipeHandle){
// // event.preventDefault();
// // self.setTranslate(swipeHandle,"0px");
// // swipeHandle.classList.remove("aui-swipe-opened");
// // swipeHandle = false;
// // return;
// }
// if(document.querySelector(".aui-swipe-opened")){
// event.preventDefault();
// if(swipeHandle != document.querySelector(".aui-swipe-opened")){
// self.setTranslate(document.querySelector(".aui-swipe-opened"),"0px");
// document.querySelector(".aui-swipe-opened").classList.remove("aui-swipe-opened");
// isOpened = false;
// event.stopPropagation()
// return;
// }
// }
// })
window.addEventListener("touchmove", function(){
})
},
toggleEvents:function(element,callback){
if(!swipeHandle){
return;
}
var self = this;
self.setTransform(element,300);
element.addEventListener('touchstart', function(event){
// if(element.className.indexOf("aui-swipe-opened") > -1){
// self.setTranslate(element,"0px");
// element.classList.remove("aui-swipe-opened");
// return;
// }
//:active样式引起列表背景色冲突
element.parentNode.style.backgroundColor = "#ffffff";
if(!element.nextSibling)return;
},false)
element.addEventListener('touchmove', function(event){
if(document.querySelector(".aui-swipe-opened")){
event.preventDefault();
if(swipeHandle != document.querySelector(".aui-swipe-opened")){
self.setTranslate(document.querySelector(".aui-swipe-opened"),"0px");
document.querySelector(".aui-swipe-opened").classList.remove("aui-swipe-opened");
isOpened = false;
event.stopPropagation()
return;
}
}
// self.getAngle(event)
self.setTransform(element,0);
// if(element.className.indexOf("aui-swipe-opened") > -1)return;
if(element.parentNode.querySelector(".aui-swipe-btn")){
btnWidth = element.parentNode.querySelector(".aui-swipe-btn").offsetWidth;
}
// 列表触摸滑动时如果有已经显示的将其关闭,并退出。
var touchMoveObj = event.changedTouches[0],
touchX = touchMoveObj.clientX;
touchXDelta = -Math.pow(firstTouchX-touchX, 0.85);
handleTranslateVal = touchXDelta/friction;
// touchXDelta = touchX - firstTouchX;
// handleTranslateVal = touchXDelta/0.15;
// console.log(handleTranslateVal)
var moveX = touchMoveObj.clientX - firstTouchX;
var moveY = touchMoveObj.clientY - firstTouchY;
var direction = self.getDirection(moveX,moveY);
var angle = self.getAngle(Math.abs(moveX),Math.abs(moveY));
// console.log(isMoved);
// // 解决滑动屏幕返回时事件冲突,主要针对部分特殊机型
// if(touchMoveObj.screenX < 0){
// firstTouchxy = '';
// }
if(direction == "right"){
isMoved = false;
event.preventDefault();
}
if(direction == "top" || direction == "down"){
isMoved = false;
return;
}
if(angle <= 15 && direction === 'left'){
event.preventDefault()
isMoved = true;
}
// console.log(handleTranslateVal)
// if(isMoved)self.setTranslate(element,""+(handleTranslateVal+10)+"px");
if((event.timeStamp - firstTouchTime) >= 100 && touchXDelta < 0 && touchMoveObj.screenX > 0 && isMoved){
// event.stopPropagation();
// element.classList.add("aui-swipe-moving");
// event.preventDefault();
if(element.className.indexOf("aui-swipe-opened") <= -1){
if((handleTranslateVal+10) > -btnWidth){
self.setTranslate(element,""+(handleTranslateVal+10)+"px");
}
}else{
return
}
}
},false)
element.addEventListener('touchend', function(event){
self.setTransform(element,300);
var touchEndObj = event.changedTouches[0];
var touchEndxy = {
x: touchEndObj.clientX || 0,
y: touchEndObj.clientY || 0
};
var toucheEndX = touchEndObj.clientX - firstTouchX;
var toucheEndY = touchEndObj.clientY - firstTouchY;
var direction = self.getDirection(toucheEndX,toucheEndY);
// element.classList.remove("aui-swipe-moving");
if(direction=='left' && handleTranslateVal < (-btnWidth/3) && isMoved){
self.setTranslate(element,""+-btnWidth+"px");
element.classList.add("aui-swipe-opened");
callback({
'status':true,
'dom':element
})
isOpened = true;
}else{
element.classList.remove("aui-swipe-opened");
self.setTranslate(element,"0px");
isOpened = false;
}
// isMoved = false;
console.log(isOpened)
},true)
},
setTransform : function (el,value){
el.style.webkitTransitionDuration = el.style.transitionDuration = value+'ms';
},
setTranslate : function (el,value){
if(el)el.style.webkitTransform = el.style.transform = "translate3d("+value+",0,0)";
},
getDistance : function(p1, p2, props) {
if (!props) { props = ['x', 'y'];}
var x = p2[props[0]] - p1[props[0]];
var y = p2[props[1]] - p1[props[1]];
return Math.sqrt((x * x) + (y * y));
},
getAngle:function(moveX, moveY){
// var x = Math.abs(x1 - x2);
// var y = Math.abs(y1 - y2);
var z = Math.sqrt(moveX*moveX + moveY*moveY);
return Math.round((Math.asin(moveY / z) / Math.PI*180));
},
getDirection : function(x, y) {
if (x === y) { return '';}
if (Math.abs(x) >= Math.abs(y)) {
return x > 0 ? 'right' : 'left';
} else {
return y > 0 ? 'down' : 'up';
}
}
}
window.auiListSwipe = auiListSwipe;
})(window);

View File

@@ -0,0 +1,221 @@
/**
* aui-list-swipe.js 列表页滑动菜单
* verson 0.0.3
* @author 流浪男 && Beck
* http://www.auicss.com
* @todo more things to abstract, e.g. Loading css etc.
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function(window) {
"use strict";
var translateVal,
friction = 1,
firstTouchX,
firstTouchxy,
firstTouchY,
firstTouch,
firstTouchTime,
touchXDelta,
handleTranslateVal;
var TranslateZero = "translate3d(0,0,0)",
TranslateCent = "translate3d(100%,0,0)";
var swipeHandle = false,
btnWidth = false,
swipeBtnsRight = false;
var isMoved = false,isOpened=false;
var d = false;
var auiListSwipe = function (callback) {
this._init(callback);
}
auiListSwipe.prototype = {
// var self = this;
_init: function(callback){
var self = this;
// var d = document.querySelectorAll("selectors")
window.addEventListener('touchstart', function(event){
// 如果已经打开,将已经打开的关闭
if(isOpened && swipeHandle){
// isOpened = false;
self.setTranslate(swipeHandle,"0px");
swipeHandle.classList.remove("aui-swipe-opened");
return;
}else{
var target = event.target;
// 过滤点击
for(; target && target !== document; target = target.parentNode){
// console.log(target.classList)
if (target.classList){
if (target.classList.contains("aui-swipe-handle")) {
swipeHandle = target;
firstTouch = event.changedTouches[0];
firstTouchX = firstTouch.clientX;
firstTouchY = firstTouch.clientY;
firstTouchTime = event.timeStamp;
if(swipeHandle.className.indexOf("aui-swipe-opened") > -1){
// console.log(1)
// self.setTranslate(swipeHandle,"0px");
// swipeHandle.classList.remove("aui-swipe-opened");
event.preventDefault();
return;
}else{
// setTimeout(function(){
self.toggleEvents(swipeHandle,callback);
// }, 100)
}
}
}
}
}
// if(swipeHandle){
// event.preventDefault();
// self.setTranslate(swipeHandle,"0px");
// swipeHandle.classList.remove("aui-swipe-opened");
// swipeHandle = false;
// return;
// }
// isMoved = false;
// swipeHandle = false;
})
},
toggleEvents:function(element,callback){
if(!swipeHandle){
return;
}
var self = this;
self.setTransform(element,300);
element.addEventListener('touchstart', function(event){
// if(element.className.indexOf("aui-swipe-opened") > -1){
// self.setTranslate(element,"0px");
// element.classList.remove("aui-swipe-opened");
// return;
// }
//:active样式引起列表背景色冲突
element.parentNode.style.backgroundColor = "#ffffff";
if(!element.nextSibling)return;
},false)
element.addEventListener('touchmove', function(event){
event.preventDefault();
if(document.querySelector(".aui-swipe-opened")){
event.preventDefault();
if(swipeHandle != document.querySelector(".aui-swipe-opened")){
self.setTranslate(document.querySelector(".aui-swipe-opened"),"0px");
document.querySelector(".aui-swipe-opened").classList.remove("aui-swipe-opened");
isOpened = false;
event.stopPropagation()
return;
}
}
// self.getAngle(event)
self.setTransform(element,0);
// if(element.className.indexOf("aui-swipe-opened") > -1)return;
if(element.parentNode.querySelector(".aui-swipe-btn")){
btnWidth = element.parentNode.querySelector(".aui-swipe-btn").offsetWidth;
}
// 列表触摸滑动时如果有已经显示的将其关闭,并退出。
var touchMoveObj = event.changedTouches[0],
touchX = touchMoveObj.clientX;
touchXDelta = -Math.pow(firstTouchX-touchX, 0.85);
handleTranslateVal = touchXDelta/friction;
// touchXDelta = touchX - firstTouchX;
// handleTranslateVal = touchXDelta/0.15;
// console.log(handleTranslateVal)
var moveX = touchMoveObj.clientX - firstTouchX;
var moveY = touchMoveObj.clientY - firstTouchY;
var direction = self.getDirection(moveX,moveY);
var angle = self.getAngle(Math.abs(moveX),Math.abs(moveY));
// console.log(isMoved);
// // 解决滑动屏幕返回时事件冲突,主要针对部分特殊机型
// if(touchMoveObj.screenX < 0){
// firstTouchxy = '';
// }
if(direction == "right"){
isMoved = false;
event.preventDefault();
}
if(direction == "top" || direction == "down"){
isMoved = false;
return;
}
if(angle <= 15 && direction === 'left'){
event.preventDefault()
isMoved = true;
}
// console.log(handleTranslateVal)
// if(isMoved)self.setTranslate(element,""+(handleTranslateVal+10)+"px");
if((event.timeStamp - firstTouchTime) >= 100 && touchXDelta < 0 && touchMoveObj.screenX > 0 && isMoved){
// event.stopPropagation();
// element.classList.add("aui-swipe-moving");
// event.preventDefault();
if(element.className.indexOf("aui-swipe-opened") <= -1){
if((handleTranslateVal+10) > -btnWidth){
self.setTranslate(element,""+(handleTranslateVal+10)+"px");
}
}else{
return
}
}
},false)
element.addEventListener('touchend', function(event){
self.setTransform(element,300);
var touchEndObj = event.changedTouches[0];
var touchEndxy = {
x: touchEndObj.clientX || 0,
y: touchEndObj.clientY || 0
};
var toucheEndX = touchEndObj.clientX - firstTouchX;
var toucheEndY = touchEndObj.clientY - firstTouchY;
var direction = self.getDirection(toucheEndX,toucheEndY);
// element.classList.remove("aui-swipe-moving");
if(direction=='left' && handleTranslateVal < (-btnWidth/3) && isMoved){
self.setTranslate(element,""+-btnWidth+"px");
element.classList.add("aui-swipe-opened");
callback({
'status':true,
'dom':element
})
// isOpened = true;
}else{
element.classList.remove("aui-swipe-opened");
self.setTranslate(element,"0px");
isOpened = false;
}
// isMoved = false;
console.log(isOpened)
},true)
},
setTransform : function (el,value){
el.style.webkitTransitionDuration = el.style.transitionDuration = value+'ms';
},
setTranslate : function (el,value){
if(el)el.style.webkitTransform = el.style.transform = "translate3d("+value+",0,0)";
},
getDistance : function(p1, p2, props) {
if (!props) { props = ['x', 'y'];}
var x = p2[props[0]] - p1[props[0]];
var y = p2[props[1]] - p1[props[1]];
return Math.sqrt((x * x) + (y * y));
},
getAngle:function(moveX, moveY){
// var x = Math.abs(x1 - x2);
// var y = Math.abs(y1 - y2);
var z = Math.sqrt(moveX*moveX + moveY*moveY);
return Math.round((Math.asin(moveY / z) / Math.PI*180));
},
getDirection : function(x, y) {
if (x === y) { return '';}
if (Math.abs(x) >= Math.abs(y)) {
return x > 0 ? 'right' : 'left';
} else {
return y > 0 ? 'down' : 'up';
}
}
}
window.auiListSwipe = auiListSwipe;
})(window);

View File

@@ -0,0 +1,135 @@
/**
* aui-popup.js
* @author 流浪男
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function( window, undefined ) {
"use strict";
var auiPopup = function() {
};
var isShow = false;
auiPopup.prototype = {
init: function(params,callback){
this.frameBounces = params.frameBounces;
this.location = params.location;
this.buttons = params.buttons;
this.maskDiv;
this.popupDiv;
var self = this;
self.open(params,callback);
},
open: function(params,callback) {
var buttonsHtml='',locationClass = 'aui-popup-top';
var self = this;
if(self.popupDiv){
self.close();
return;
}
if(!self.maskDiv){
self.maskDiv = document.createElement("div");
self.maskDiv.className = "aui-mask";
document.body.appendChild(self.maskDiv);
}
switch (self.location) {
case "top":
locationClass = 'aui-popup-top';
break;
case "top-left":
locationClass = 'aui-popup-top-left';
break;
case "top-right":
locationClass = 'aui-popup-top-right';
break;
case "bottom":
locationClass = 'aui-popup-bottom';
break;
case "bottom-left":
locationClass = 'aui-popup-bottom-left';
break;
case "bottom-right":
locationClass = 'aui-popup-bottom-right';
break;
default:
locationClass = 'aui-popup-top';
break;
}
self.popupDiv = document.createElement("div");
self.popupDiv.className = "aui-popup "+locationClass;
self.popupDiv.innerHTML = '<div class="aui-popup-arrow"></div><div class="aui-popup-content"></div>';
document.body.appendChild(self.popupDiv);
if(self.buttons && self.buttons.length){
buttonsHtml += '<ul class="aui-list aui-list-noborder">';
for(var i = 0; i < self.buttons.length;i++){
buttonsHtml += '<li class="aui-list-item aui-list-item-middle">';
buttonsHtml += '<div class="aui-list-item-label-icon"><img src="'+self.buttons[i].image+'"></div>';
buttonsHtml += '<div class="aui-list-item-inner">'+self.buttons[i].text+'</div>';
buttonsHtml += '</li>';
}
buttonsHtml += '</ul>';
}
document.querySelector(".aui-popup .aui-popup-content").insertAdjacentHTML('beforeend', buttonsHtml);
var actionsheetHeight = document.querySelector(".aui-popup").offsetHeight;
self.maskDiv.classList.add("aui-mask-in");
self.popupDiv.classList.add("aui-popup-in");
self.popupDiv.addEventListener("touchmove", function(event){
event.preventDefault();
})
self.maskDiv.addEventListener("touchmove", function(event){
event.preventDefault();
})
if(typeof(api) != 'undefined' && typeof(api) == 'object' && self.frameBounces){
api.setFrameAttr({
bounces:false
});
}
var popupButtons = document.querySelectorAll(".aui-popup .aui-list-item");
if(popupButtons && popupButtons.length > 0){
setTimeout(function(){
self.maskDiv.onclick = function(){self.close();return;};
for(var ii = 0; ii < popupButtons.length; ii++){
(function(e){
popupButtons[e].onclick = function(){
if(self.buttons[e].value){
var _value = self.buttons[e].value;
}else{
var _value = null;
}
if(callback){
callback({
buttonIndex: e+1,
buttonTitle: this.textContent,
buttonValue: _value
});
};
self.close();
return;
}
})(ii)
}
}, 350)
}
},
close: function(){
var self = this;
if(typeof(api) != 'undefined' && typeof(api) == 'object' && self.frameBounces){
api.setFrameAttr({
bounces:true
});
}
if(self.popupDiv){
var actionsheetHeight = self.popupDiv.offsetHeight;
self.popupDiv.classList.add("aui-popup-out");
self.maskDiv.style.opacity = 0;
setTimeout(function(){
if(self.maskDiv){
self.maskDiv.parentNode.removeChild(self.maskDiv);
}
self.popupDiv.parentNode.removeChild(self.popupDiv);
self.maskDiv = self.popupDiv = false;
}, 300)
}
}
};
window.auiPopup = auiPopup;
})(window);

View File

@@ -0,0 +1,94 @@
/**
* aui-popup.js
* @author 流浪男
* @todo more things to abstract, e.g. Loading css etc.
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function( window, undefined ) {
"use strict";
var auiPopup = function() {
this._init();
};
var CLASS_MASK = "aui-mask",
CLASS_MASK_IN = 'aui-mask-in',
CLASS_MASK_OUT = 'aui-mask-out',
CLASS_POPUP = 'aui-popup',
CLASS_POPUP_IN = 'aui-popup-in',
CLASS_POPUP_OUT = 'aui-popup-out',
CLASS_POPUP_FOR = 'aui-popup-for';
var __MASK = '.'+CLASS_MASK,
__MASK_IN = '.'+CLASS_MASK_IN,
__MASK_OUT = '.'+CLASS_MASK_OUT,
__POPUP = '.'+CLASS_POPUP,
__POPUP_IN = '.'+CLASS_POPUP_IN,
__POPUP_OUT = '.'+CLASS_POPUP_OUT;
var popupStatus = false;
auiPopup.prototype = {
_init: function() {
var self = this;
var _btn = document.querySelectorAll("["+CLASS_POPUP_FOR+"]");
if(_btn){
for(var i=0;i<_btn.length;i++){
_btn[i].setAttribute("tapmode", "");
_btn[i].onclick = function(e){
var popupId = this.getAttribute(CLASS_POPUP_FOR);
var popupDom = document.getElementById(popupId);
if(popupDom){
if(popupDom.className.indexOf(CLASS_POPUP_IN) > -1 || document.querySelector(__POPUP_IN)){
self.hide(popupDom);
}else{
self.show(popupDom);
}
}else{
return;
}
}
}
}
},
show: function(el){
var self = this;
if(el.className.indexOf(CLASS_POPUP_IN) > -1 || document.querySelector(__POPUP_IN)){
self.hide(el);
return;
}
if(popupStatus) return;
if(!document.querySelector(__MASK)){
var maskHtml = '<div class="aui-mask"></div>';
document.body.insertAdjacentHTML('beforeend', maskHtml);
}
el.style.display = "block";
setTimeout(function(){
document.querySelector(__MASK).classList.add(CLASS_MASK_IN);
el.classList.add(CLASS_POPUP_IN);
popupStatus = true;
}, 10)
document.querySelector(__MASK).addEventListener("touchstart", function(event){
event.preventDefault();
self.hide(el);
})
el.addEventListener("touchmove", function(event){
event.preventDefault();
},false)
},
hide: function(el){
if(!popupStatus) return;
document.querySelector(__MASK).classList.remove(CLASS_MASK_IN);
document.querySelector(__MASK).classList.add(CLASS_MASK_OUT);
if(!document.querySelector(__POPUP_IN))return;
document.querySelector(__POPUP_IN).classList.add(CLASS_POPUP_OUT);
document.querySelector(__POPUP_IN).classList.remove(CLASS_POPUP_IN);
setTimeout(function(){
if(!document.querySelector(__POPUP_OUT))return;
document.querySelector(__POPUP_OUT).style.display = "none";
document.querySelector(__POPUP_OUT).classList.remove(CLASS_POPUP_OUT);
if(document.querySelector(__MASK)){
document.querySelector(__MASK).parentNode.removeChild(document.querySelector(__MASK));
}
popupStatus = false;
}, 300)
}
};
window.auiPopup = auiPopup;
})(window);

View File

@@ -0,0 +1,174 @@
/**
* aui-pull-refresh.js
* @author 流浪男
* @todo more things to abstract, e.g. Loading css etc.
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function(window) {
'use strict';
/**
* Extend obj function
*
* This is an object extender function. It allows us to extend an object
* by passing in additional variables and overwriting the defaults.
*/
var auiPullToRefresh = function (params,callback) {
this.extend(this.params, params);
this._init(callback);
}
var touchYDelta;
var isLoading = false;
var docElem = window.document.documentElement,
loadWrapH,
win = {width: window.innerWidth, height: window.innerHeight},
winfactor= 0.2,
translateVal,
isMoved = false,
firstTouchY, initialScroll;
auiPullToRefresh.prototype = {
params: {
container: document.querySelector('.aui-refresh-content'),
friction: 2.5,
triggerDistance: 100,
callback:false
},
_init : function(callback) {
var self = this;
var loadingHtml = '<div class="aui-refresh-load"><div class="aui-refresh-pull-arrow"></div></div>';
self.params.container.insertAdjacentHTML('afterbegin', loadingHtml);
self.params.container.addEventListener('touchstart', function(ev){
self.touchStart(ev)
});
self.params.container.addEventListener('touchmove', function(ev){
self.touchMove(ev)
});
self.params.container.addEventListener('touchend', function(ev){
self.touchEnd(ev,callback);
});
},
touchStart : function(ev) {
// this.params.container.classList.remove("refreshing");
if (isLoading) {
return;
}
isMoved = false;
this.params.container.style.webkitTransitionDuration =
this.params.container.style.transitionDuration = '0ms';
touchYDelta = '';
var touchobj = ev.changedTouches[0];
// register first touch "y"
firstTouchY = parseInt(touchobj.clientY);
initialScroll = this.scrollY();
},
touchMove : function (ev) {
if (isLoading) {
ev.preventDefault();
return;
}
var self = this;
var moving = function() {
var touchobj = ev.changedTouches[0], // reference first touch point for this event
touchY = parseInt(touchobj.clientY);
touchYDelta = touchY - firstTouchY;
if ( self.scrollY() === 0 && touchYDelta > 0 ) {
ev.preventDefault();
}
if ( initialScroll > 0 || self.scrollY() > 0 || self.scrollY() === 0 && touchYDelta < 0 ) {
firstTouchY = touchY;
return;
}
translateVal = Math.pow(touchYDelta, 0.85);
self.params.container.style.webkitTransform = self.params.container.style.transform = 'translate3d(0, ' + translateVal + 'px, 0)';
isMoved = true;
if(touchYDelta > self.params.triggerDistance){
self.params.container.classList.add("aui-refresh-pull-up");
self.params.container.classList.remove("aui-refresh-pull-down");
}else{
self.params.container.classList.add("aui-refresh-pull-down");
self.params.container.classList.remove("aui-refresh-pull-up");
}
};
this.throttle(moving(), 20);
},
touchEnd : function (ev,callback) {
var self =this;
if (isLoading|| !isMoved) {
isMoved = false;
return;
}
// 根据下拉高度判断是否加载
if( touchYDelta >= this.params.triggerDistance) {
isLoading = true; //正在加载中
ev.preventDefault();
this.params.container.style.webkitTransitionDuration =
this.params.container.style.transitionDuration = '300ms';
this.params.container.style.webkitTransform =
this.params.container.style.transform = 'translate3d(0,60px,0)';
document.querySelector(".aui-refresh-pull-arrow").style.webkitTransitionDuration =
document.querySelector(".aui-refresh-pull-arrow").style.transitionDuration = '0ms';
self.params.container.classList.add("aui-refreshing");
if(callback){
callback({
status:"success"
});
}
}else{
this.params.container.style.webkitTransitionDuration =
this.params.container.style.transitionDuration = '300ms';
this.params.container.style.webkitTransform =
this.params.container.style.transform = 'translate3d(0,0,0)';
if(callback){
callback({
status:"fail"
});
}
}
isMoved = false;
return;
},
cancelLoading : function () {
var self =this;
isLoading = false;
self.params.container.classList.remove("aui-refreshing");
document.querySelector(".aui-refresh-pull-arrow").style.webkitTransitionDuration =
document.querySelector(".aui-refresh-pull-arrow").style.transitionDuration = '300ms';
this.params.container.style.webkitTransitionDuration =
this.params.container.style.transitionDuration = '0ms';
self.params.container.style.webkitTransform =
self.params.container.style.transform = 'translate3d(0,0,0)';
self.params.container.classList.remove("aui-refresh-pull-up");
self.params.container.classList.add("aui-refresh-pull-down");
return;
},
scrollY : function() {
return window.pageYOffset || docElem.scrollTop;
},
throttle : function(fn, delay) {
var allowSample = true;
return function(e) {
if (allowSample) {
allowSample = false;
setTimeout(function() { allowSample = true; }, delay);
fn(e);
}
};
},
winresize : function () {
var resize = function() {
win = {width: window.innerWidth, height: window.innerHeight};
};
throttle(resize(), 10);
},
extend: function(a, b) {
for (var key in b) {
if (b.hasOwnProperty(key)) {
a[key] = b[key];
}
}
return a;
}
}
window.auiPullToRefresh = auiPullToRefresh;
})(window);

View File

@@ -0,0 +1,53 @@
/*
* AUI JAVASCRIPT PLUGIN
* 滑动 aui-range
* Copyright (c) 2015 auicss.com @流浪男 QQ343757327 群344869952
*/
(function( window, undefined ) {
"use strict";
var auiRange = function(params,callback) {
this._init(params,callback);
};
var time=null;
var distance,offsetLeft,tooltipWidth;
auiRange.prototype = {
_init: function(params,callback) {
var self = this;
distance = Math.abs(params.element.max - params.element.min);
offsetLeft = params.element.offsetLeft;
tooltipWidth = params.element.offsetWidth - 28;
params.element.insertAdjacentHTML('afterend','<div class="aui-range-tip aui-hide">'+params.element.value+'</div>');
var scaleWidth = (tooltipWidth / distance) * Math.abs(params.element.value - params.element.min);
params.element.nextSibling.style.left = (offsetLeft + scaleWidth - 11)+'px';
params.element.addEventListener("input",function(){
self._showTip(params.element,callback);
});
params.element.addEventListener("touchmove",function(){
self._showTip(params.element,callback);
});
params.element.addEventListener("touchend",function(){
self._hideTip(params.element);
});
},
_showTip: function(el,callback){
el.nextSibling.classList.remove("aui-hide");
var scaleWidth = (tooltipWidth / distance) * Math.abs(el.value - el.min);
el.nextSibling.style.left = (offsetLeft + scaleWidth - 11)+'px';
el.nextSibling.innerText = el.value;
callback({
value:el.value
});
},
_hideTip : function(el){
if (time) {
clearTimeout(time);
}
time = setTimeout(function() {
el.nextSibling.classList.add("aui-hide");
}, 1500);
}
}
window.auiRange = auiRange;
})(window);

View File

@@ -0,0 +1,66 @@
/**
* aui-scroll.js
* @author 流浪男
* @todo more things to abstract, e.g. Loading css etc.
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function(window) {
'use strict';
var isToBottom = false,isMoved = false;
var auiScroll = function (params,callback) {
this.extend(this.params, params);
this._init(params,callback);
}
auiScroll.prototype = {
params: {
listren:false,
distance: 100
},
_init : function(params,callback) {
var self = this;
if(self.params.listen){
document.body.addEventListener("touchmove", function(e){
self.scroll(callback);
});
document.body.addEventListener("touchend", function(e){
self.scroll(callback);
});
}
window.onscroll = function(){
self.scroll(callback);
}
},
scroll : function (callback) {
var self = this;
var clientHeight = document.documentElement.scrollTop === 0 ? document.body.clientHeight : document.documentElement.clientHeight;
var scrollTop = document.documentElement.scrollTop === 0 ? document.body.scrollTop : document.documentElement.scrollTop;
var scrollHeight = document.documentElement.scrollTop === 0 ? document.body.scrollHeight : document.documentElement.scrollHeight;
if (scrollHeight-scrollTop-self.params.distance <= window.innerHeight) {
isToBottom = true;
if(isToBottom){
callback({
"scrollTop":scrollTop,
"isToBottom":true
})
}
}else{
isToBottom = false;
callback({
"scrollTop":scrollTop,
"isToBottom":false
})
}
},
extend: function(a, b) {
for (var key in b) {
if (b.hasOwnProperty(key)) {
a[key] = b[key];
}
}
return a;
}
}
window.auiScroll = auiScroll;
})(window);

View File

@@ -0,0 +1,119 @@
/**
* aui-sharebox.js
* @author 流浪男
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function( window, undefined ) {
"use strict";
var auiSharebox = function() {
};
var isShow = false;
auiSharebox.prototype = {
init: function(params,callback){
this.frameBounces = params.frameBounces;
this.col = params.col;
this.buttons = params.buttons;
this.cancelTitle = params.cancelTitle;
this.maskDiv;
this.shareBoxDiv;
var self = this;
self.open(params,callback);
},
open: function(params,callback) {
var shareboxHtml='',buttonsHtml = '';
var self = this;
if(self.shareBoxDiv || !self.buttons)return;
if(!self.maskDiv){
self.maskDiv = document.createElement("div");
self.maskDiv.className = "aui-mask";
document.body.appendChild(self.maskDiv);
}
if(!self.col)self.col = 5;
self.shareBoxDiv = document.createElement("div");
self.shareBoxDiv.className = "aui-sharebox aui-grid";
document.body.appendChild(self.shareBoxDiv);
if(self.buttons && self.buttons.length){
buttonsHtml = '<div class="aui-row aui-row-padded">';
for(var i = 0; i < self.buttons.length;i++){
if(self.col == 5){
buttonsHtml += '<div class="aui-col-5 aui-sharebox-btn">';
}else{
buttonsHtml += '<div class="aui-col-xs-'+(12/self.col)+' aui-sharebox-btn">';
}
if(self.buttons[i].image)buttonsHtml += '<img src="'+self.buttons[i].image+'">';
if(self.buttons[i].text)buttonsHtml += '<div class="aui-grid-label">'+self.buttons[i].text+'</div>';
buttonsHtml += '</div>';
}
buttonsHtml += '</div>';
}
if(self.cancelTitle){
buttonsHtml += '<div class="aui-sharebox-close-btn aui-border-t">'+this.cancelTitle+'</div>';
}
self.shareBoxDiv.innerHTML = buttonsHtml;
var actionsheetHeight = self.shareBoxDiv.offsetHeight;
self.maskDiv.classList.add("aui-mask-in");
self.shareBoxDiv.style.webkitTransform = self.shareBoxDiv.style.transform = "translate3d(0,0,0)";
self.shareBoxDiv.style.opacity = 1;
self.shareBoxDiv.addEventListener("touchmove", function(event){
event.preventDefault();
})
self.maskDiv.addEventListener("touchmove", function(event){
event.preventDefault();
})
if(typeof(api) != 'undefined' && typeof(api) == 'object' && self.frameBounces){
api.setFrameAttr({
bounces:false
});
}
var shareboxButtons = document.querySelectorAll(".aui-sharebox-btn");
if(shareboxButtons && shareboxButtons.length > 0){
setTimeout(function(){
self.maskDiv.onclick = function(){self.close();return;};
for(var ii = 0; ii < shareboxButtons.length; ii++){
(function(e){
shareboxButtons[e].onclick = function(){
if(self.buttons[e].value){
var _value = self.buttons[e].value;
}else{
var _value = null;
}
if(callback){
callback({
buttonIndex: e+1,
buttonValue:_value
});
};
self.close();
return;
}
})(ii)
}
}, 350)
}
document.querySelector(".aui-sharebox-close-btn").onclick = function(){self.close();return;};
},
close: function(){
var self = this;
if(typeof(api) != 'undefined' && typeof(api) == 'object' && self.frameBounces){
api.setFrameAttr({
bounces:true
});
}
if(self.shareBoxDiv){
var actionsheetHeight = self.shareBoxDiv.offsetHeight;
self.shareBoxDiv.style.webkitTransform = self.shareBoxDiv.style.transform = "translate3d(0,"+actionsheetHeight+"px,0)";
self.maskDiv.style.opacity = 0;
setTimeout(function(){
if(self.maskDiv){
self.maskDiv.parentNode.removeChild(self.maskDiv);
}
self.shareBoxDiv.parentNode.removeChild(self.shareBoxDiv);
self.maskDiv = self.shareBoxDiv = false;
}, 300)
}
}
};
window.auiSharebox = auiSharebox;
})(window);

View File

@@ -0,0 +1,89 @@
/**
* aui-skin.js
* @author 流浪男
* @todo more things to abstract, e.g. Loading css etc.
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function( window, undefined ) {
"use strict";
var auiSkin = function(params) {
this.extend(this.params, params);
this._init();
};
var fileRef;
auiSkin.prototype = {
params: {
name: "", //主题名字
skinPath: "",//主题路径
default: false, //默认是否立即使用
beginTime: "",//开始时间
endTime: ""//结束时间
},
_init: function() {
var self = this;
if(!self.params.name)return;
if(!self.params.skinPath)return;
fileRef = document.createElement('link');
fileRef.setAttribute("rel","stylesheet");
fileRef.setAttribute("type","text/css");
fileRef.setAttribute("aui-skin-name",self.params.name);
fileRef.setAttribute("href",self.params.skinPath);
if(self.params.default){
document.getElementsByTagName("head")[0].appendChild(fileRef);
}else{
if(!self.params.beginTime || !self.params.endTime)return;
if(!self.check(self.params.beginTime,self.params.endTime))return;
var _date = new Date();
if(_date.getMinutes() < 10){
var nowM = "0"+_date.getMinutes();
}else{
var nowM = _date.getMinutes();
}
var nowTime = _date.getHours()+":"+nowM;
var b = parseInt(self.params.beginTime.replace(":", ''));
var e = parseInt(self.params.endTime.replace(":", ''));
var n = parseInt(nowTime.replace(":", ''));
if(b > e){
if(n >= b || n <= e)self.setSkin();
}else if(b < e){
if(n >= b && n <= e)self.setSkin();
}else{
self.removeSkin();
}
}
},
setSkin:function(){
document.getElementsByTagName("head")[0].appendChild(fileRef);
},
removeSkin:function(){
var self = this;
if(document.querySelector("link[aui-skin-name='"+self.params.name+"']"))
document.querySelector("link[aui-skin-name='"+self.params.name+"']").parentNode.removeChild(document.querySelector("link[aui-skin-name='"+self.params.name+"']"));
},
check:function(beginTime,endTime){
var strb = beginTime.split (":");
if (strb.length != 2)return false;
var stre = endTime.split (":");
if (stre.length != 2)return false;
var b = new Date ();
var e = new Date ();
b.setHours (strb[0]);
b.setMinutes (strb[1]);
e.setHours (stre[0]);
e.setMinutes (stre[1]);
if(strb[0] > 24 || strb[0] < 0 || stre[0] > 24 || stre[0] < 0)return false;
if(strb[1] > 59 || strb[1] < 0 || stre[1] > 59 || stre[1] < 0)return false;
return true;
},
extend: function(a, b) {
for (var key in b) {
if (b.hasOwnProperty(key)) {
a[key] = b[key];
}
}
return a;
}
};
window.auiSkin = auiSkin;
})(window);

View File

@@ -0,0 +1,333 @@
/**
* aui-slide.js 轮播组件
* @author 流浪男
* http://www.auicss.com
* @todo more things to abstract, e.g. Loading css etc.
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function(window) {
"use strict";
var translateVal,
firstTouchX,
firstTouchY,
touchXDelta,
handleTranslateVal;
var touchStartTime; //开始触摸事件
var offsetX,
offsetY,
isScrolling;
// CLASS 组装
var CLASS_SLIDER_NODE = "aui-slide-node",
CLASS_SLIDE_PAGE_WRAP = "aui-slide-page-wrap",
CLASS_SLIDE_PAGE = "aui-slide-page",
CLASS_SLIDE_PAGE_ACTIVE = "aui-slide-page-active",
CLASS_SLIDE_PAGE_DOT = "aui-slide-page-dot",
CLASS_SLIDE_PAGE_LINE = "aui-slide-page-line";
var __SLIDER_NODE = "."+CLASS_SLIDER_NODE,
__SLIDE_PAGE_WRAP = "."+CLASS_SLIDE_PAGE_WRAP,
__SLIDE_PAGE = "."+CLASS_SLIDE_PAGE,
__SLIDE_PAGE_ACTIVE = "."+CLASS_SLIDE_PAGE_ACTIVE;
auiSlide.prototype.options = {
container:'',
width:'auto',
height:'auto',
speed: 300, //滑动速速
autoPlay: 0, //自动播放
pageShow: true, //是否显示分页器
pageStyle: 'dot',
dotPosition: 'center',
friction:1, //阻力
loop:true,
currentPage:false,
PageCount:false
};
auiSlide.prototype._init = function(options) {
extend(this.options, options);
if(!this.options.container){
return;
}
this.index = 0; //索引值
this.continuous = true;//用于判断长度为2时的特殊处理
this.container = this.options.container;
// console.log(this.options.loop);
this.loop = this.options.loop;
this.speed = this.options.speed;
this.container.style.position = "relative";
this.container.style.width = this.options.width+"px";
this.container.style.height = this.options.height+"px";
var element = this.container.children[0];
this.slideWrap = element;
this.slideNodeList = this.slideWrap.querySelectorAll(__SLIDER_NODE);
if(!element || !this.slideNodeList){
return;
}
// this.options.pageCount(this.slideNodeList.length);
this.slideWrapWidth = this.slideWrap.offsetWidth;
this.slideNodeListLength = this.slideNodeList.length;
if (this.slideNodeListLength == 2) { //当长度为2时作特殊处理
element.appendChild(this.slideWrap.children[0].cloneNode(true));
element.appendChild(this.slideWrap.children[1].cloneNode(true));
this.slideWrap = element;
this.slideNodeList = this.slideWrap.querySelectorAll(__SLIDER_NODE);
this.slideNodeListLength = this.slideNodeList.length;
this.continuous = false;
}
for (var i = 0; i < this.slideNodeListLength; i++) {
this.slideNodeList[i] && (this.slideNodeList[i].style.webkitTransform = this.slideNodeList[i].style.transform = "translate3d("+(this.slideWrapWidth*i)+"px,0,0)");
}
if(this.slideNodeListLength > 1) {
if(this.options.pageShow){
this.createPagination(0);
this.setPageDotPosition();
}
if(this.options.autoPlay > 500 && this.loop){
this.autoPlay(0);
}
this.slideWrap.addEventListener('touchstart', this.touchStart.bind(this), false);
this.slideWrap.addEventListener('touchmove', this.touchMove.bind(this), false);
this.slideWrap.addEventListener('touchend', this.touchEnd.bind(this), false);
}
};
// 当分页器为圆点时位置设置
auiSlide.prototype.setPageDotPosition = function(){
var self = this;
var pageDotPosition = self.options.dotPosition;
this.container.querySelector(__SLIDE_PAGE_WRAP).style.textAlign = pageDotPosition;
};
// 自动播放
auiSlide.prototype.autoPlay = function (index) {
var self = this;
setInterval(function(){
self.slideTo(self.getCircle(self.index-1), -self.slideWrapWidth, 0);
self.slideTo(self.getCircle(self.index+2), self.slideWrapWidth, 0);
self.slideTo(self.index, -self.slideWrapWidth, self.options.speed);
self.slideTo(self.getCircle(self.index+1), 0, self.options.speed);
self.index = self.getCircle(self.index+1);
self.setPaginationActive(self.index);
}, self.options.autoPlay)
};
// 设置当前分页
auiSlide.prototype.setPaginationActive = function(index){
var self = this;
if(self.options.currentPage){
self.options.currentPage(index);
}
if(!this.container.querySelector(__SLIDE_PAGE_WRAP)){
return;
}
var pageList = this.container.querySelectorAll(__SLIDE_PAGE);
if(this.container.querySelector(__SLIDE_PAGE+__SLIDE_PAGE_ACTIVE)){
this.container.querySelector(__SLIDE_PAGE+__SLIDE_PAGE_ACTIVE).classList.remove(CLASS_SLIDE_PAGE_ACTIVE);
}
if(!this.continuous){
if(this.index == 3){
pageList[1].classList.add(CLASS_SLIDE_PAGE_ACTIVE);
}else if(this.index==2){
pageList[0].classList.add(CLASS_SLIDE_PAGE_ACTIVE);
}else{
pageList[this.index].classList.add(CLASS_SLIDE_PAGE_ACTIVE);
}
}else{
pageList[this.index].classList.add(CLASS_SLIDE_PAGE_ACTIVE);
}
};
// 创建分页器
auiSlide.prototype.createPagination = function(index){
var self = this;
var pageWrap = this.container.querySelector(__SLIDE_PAGE_WRAP);
if(!pageWrap){
return;
}
pageWrap.innerHTML = '';
var pageShowHtml = '';
switch (self.options.pageStyle) {
case "dot":// 原点
if (!this.continuous) {
for (var i = 0; i < 2; i++) {
pageShowHtml += '<span class="'+CLASS_SLIDE_PAGE+' '+CLASS_SLIDE_PAGE_DOT+'"></span>';
}
}else{
for (var i = 0; i < this.slideNodeListLength; i++) {
pageShowHtml += '<span class="'+CLASS_SLIDE_PAGE+' '+CLASS_SLIDE_PAGE_DOT+'"></span>';
}
}
pageWrap.innerHTML = pageShowHtml;
self.setPaginationActive(0);
break;
case "line":// 线条
if (!this.continuous) {
for (var i = 0; i < 2; i++) {
pageShowHtml += '<span class="'+CLASS_SLIDE_PAGE+' '+CLASS_SLIDE_PAGE_LINE+'" style="width:50%"></span>';
}
}else{
for (var i = 0; i < this.slideNodeListLength; i++) {
pageShowHtml += '<span class="'+CLASS_SLIDE_PAGE+' '+CLASS_SLIDE_PAGE_LINE+'" style="width:'+(100/this.slideNodeListLength)+'%"></span>';
}
}
pageWrap.innerHTML = pageShowHtml;
self.setPaginationActive(0);
break;
}
};
// 总页数
auiSlide.prototype.pageCount = function() {
var self = this;
return self.slideNodeList.length;
};
auiSlide.prototype.touchStart = function(event) {
touchStartTime = new Date() * 1;
firstTouchX = parseInt(event.changedTouches[0].pageX);
firstTouchY = parseInt(event.changedTouches[0].pageY);
isScrolling = undefined;
};
auiSlide.prototype.touchMove = function(event) {
var touchMoveObj = event.changedTouches[0],
touchX = parseInt(touchMoveObj.pageX);
touchXDelta = touchX - firstTouchX;
handleTranslateVal = touchXDelta/this.options.friction;
// 滑动位移
offsetX = parseInt(touchMoveObj.pageX) - firstTouchX;
offsetY = parseInt(touchMoveObj.pageY) - firstTouchY;
var direction = this.getDirection(offsetX,offsetY);
if ( typeof isScrolling == 'undefined') {
isScrolling = !!( isScrolling || Math.abs(offsetX) < Math.abs(offsetY) );
}
if(!isScrolling){
event.preventDefault();
if(!this.loop){ //不循环
if(!this.continuous && this.index==1 && direction=='left'){
return;
}
if(!this.continuous && this.index==0 && direction=='right'){
return;
}
if(this.index == this.slideNodeList.length-1){
if(handleTranslateVal <= 0){
return;
}
this.setTranslate(this.getCircle(this.index-1), handleTranslateVal - this.slideWrapWidth, 0);
}else if(this.index == 0){
if(handleTranslateVal >= 0){
return;
}
this.setTranslate(this.getCircle(this.index+1), this.slideWrapWidth, 0);
}
}
this.setTranslate(this.getCircle(this.index-1), handleTranslateVal - this.slideWrapWidth, 0);
this.setTranslate(this.index, handleTranslateVal , 0);
this.setTranslate(this.getCircle(this.index+1), handleTranslateVal + this.slideWrapWidth, 0);
}
};
auiSlide.prototype.touchEnd = function(event) {
var touchEndObj = event.changedTouches[0];
var touchEndX = parseInt(touchEndObj.pageX) - firstTouchX;
var touchEndY = parseInt(touchEndObj.pageY) - firstTouchY;
var touchEndxy = {
x: touchEndObj.pageX || 0,
y: touchEndObj.pageY || 0
};
var moveDirection = this.getDirection(touchEndX,touchEndY); //滑动方向
var boundary = this.slideWrapWidth/4;
var duration = (new Date() * 1) - touchStartTime;
var isValid = Number(duration) < 250 && Math.abs(offsetX) > 20 || Math.abs(offsetX) > boundary;
if (isScrolling) {
return;
}
if(isValid){
if(offsetX < 0){
if(!this.loop && this.index == this.slideNodeList.length-1){
return;
}
if(!this.loop && !this.continuous && this.index==1){
return;
}
if(offsetX < -boundary && moveDirection == 'left'){
// left
this.slideTo(this.getCircle(this.index-1), -this.slideWrapWidth, 0);
this.slideTo(this.getCircle(this.index+2), this.slideWrapWidth, 0);
this.slideTo(this.index, -this.slideWrapWidth, this.speed);
this.slideTo(this.getCircle(this.index+1), 0, this.speed);
this.index = this.getCircle(this.index+1);
}else{
// this.slideTo(this.getCircle(this.index-1), -this.slideWrapWidth, this.speed);
this.slideTo(this.index, 0, this.speed);
this.slideTo(this.getCircle(this.index+1), this.slideWrapWidth, this.speed);
}
}else if(offsetX > 0){
if(!this.loop && this.index == 0){
return;
}
if(!this.loop && !this.continuous && this.index==0){
return;
}
if(offsetX > boundary && moveDirection == 'right'){
// right
this.slideTo(this.getCircle(this.index+1), this.slideWrapWidth, 0);
this.slideTo(this.getCircle(this.index-2), -this.slideWrapWidth, 0);
this.slideTo(this.index, this.slideWrapWidth, this.speed);
this.slideTo(this.getCircle(this.index-1), 0, this.speed);
this.index = this.getCircle(this.index-1);
}else{
// this.slideTo(this.getCircle(this.index-1), -this.slideWrapWidth, this.speed);
this.slideTo(this.index, 0, this.speed);
this.slideTo(this.getCircle(this.index+1), this.slideWrapWidth, this.speed);
}
}
}else{
if(offsetX){
this.slideTo(this.getCircle(this.index-1), -this.slideWrapWidth, this.speed);
this.slideTo(this.index, 0, this.speed);
this.slideTo(this.getCircle(this.index+1), this.slideWrapWidth, this.speed);
}
}
this.setPaginationActive(this.index);
};
auiSlide.prototype.setTranslate = function (index,dist,speed){
if(this.slideNodeList[index]){
this.slideNodeList[index].style.webkitTransitionDuration =
this.slideNodeList[index].style.transitionDuration = speed + 'ms';
this.slideNodeList[index].style.webkitTransform =
this.slideNodeList[index].style.transform = "translate3d("+dist+"px,0,0)";
}
};
auiSlide.prototype.slideTo = function (index, dist, speed) {
this.setTranslate(index, dist, speed);
// index = dist;
};
auiSlide.prototype.getCircle = function (index) {
return (this.slideNodeListLength + (index % this.slideNodeListLength)) % this.slideNodeListLength;
};
auiSlide.prototype.getDirection = function(x, y) {
if (x === y) { return '';}
if (Math.abs(x) >= Math.abs(y)) {
return x > 0 ? 'right' : 'left';
} else {
return y > 0 ? 'down' : 'up';
}
}
function extend (a, b) {
for (var key in b) {
if (b.hasOwnProperty(key)) {
a[key] = b[key];
}
}
return a;
}
function auiSlide (options) {
this._init(options);
}
window.auiSlide = auiSlide;
})(window);

View File

@@ -0,0 +1,69 @@
/**
* aui-tab.js
* @author 流浪男
* @todo more things to abstract, e.g. Loading css etc.
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function( window, undefined ) {
"use strict";
var auiTab = function(params,callback) {
this.extend(this.params, params);
this._init(callback);
};
var tabItems;
auiTab.prototype = {
params: {
element: false,
index: 1, //默认选中
repeatClick: false //是否允许重复点击
},
_init: function(callback) {
var self = this;
if(!self.params.element || self.params.element.nodeType!=1){
return;
}
tabItems = self.params.element.children;
if(tabItems){
self.setActive();
for(var i=0; i<tabItems.length; i++){
tabItems[i].setAttribute("tapmode","");
tabItems[i].setAttribute("data-item-order",i);
tabItems[i].onclick = function(e){
if(!self.params.repeatClick){
if(this.className.indexOf("aui-active") > -1)return;
}
if(callback){
callback({
index: parseInt(this.getAttribute("data-item-order"))+1,
dom:this
})
};
this.parentNode.querySelector(".aui-active").classList.remove("aui-active");
this.classList.add("aui-active");
}
}
}
},
setRepeat:function(value){
var self = this;
self.params.repeatClick = value ? value : false;
},
setActive: function(index){
var self = this;
index = index ? index : self.params.index;
var _tab = tabItems[index-1];
if(_tab.parentNode.querySelector(".aui-active"))_tab.parentNode.querySelector(".aui-active").classList.remove("aui-active");
_tab.classList.add("aui-active");
},
extend: function(a, b) {
for (var key in b) {
if (b.hasOwnProperty(key)) {
a[key] = b[key];
}
}
return a;
}
};
window.auiTab = auiTab;
})(window);

View File

@@ -0,0 +1,92 @@
/**
* aui-popup.js
* @author 流浪男
* @todo more things to abstract, e.g. Loading css etc.
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function( window, undefined ) {
"use strict";
var auiToast = function() {
// this.create();
};
var isShow = false;
auiToast.prototype = {
create: function(params,callback) {
var self = this;
var toastHtml = '';
switch (params.type) {
case "success":
var iconHtml = '<i class="aui-iconfont aui-icon-correct"></i>';
break;
case "fail":
var iconHtml = '<i class="aui-iconfont aui-icon-close"></i>';
break;
case "custom":
var iconHtml = params.html;
break;
case "loading":
var iconHtml = '<div class="aui-toast-loading"></div>';
break;
}
var titleHtml = params.title ? '<div class="aui-toast-content">'+params.title+'</div>' : '';
toastHtml = '<div class="aui-toast">'+iconHtml+titleHtml+'</div>';
if(document.querySelector(".aui-toast"))return;
document.body.insertAdjacentHTML('beforeend', toastHtml);
var duration = params.duration ? params.duration : "2000";
self.show();
if(params.type == 'loading'){
if(callback){
callback({
status: "success"
});
};
}else{
setTimeout(function(){
self.hide();
}, duration)
}
},
show: function(){
var self = this;
document.querySelector(".aui-toast").style.display = "block";
document.querySelector(".aui-toast").style.marginTop = "-"+Math.round(document.querySelector(".aui-toast").offsetHeight/2)+"px";
if(document.querySelector(".aui-toast"))return;
},
hide: function(){
var self = this;
if(document.querySelector(".aui-toast")){
document.querySelector(".aui-toast").parentNode.removeChild(document.querySelector(".aui-toast"));
}
},
remove: function(){
if(document.querySelector(".aui-dialog"))document.querySelector(".aui-dialog").parentNode.removeChild(document.querySelector(".aui-dialog"));
if(document.querySelector(".aui-mask")){
document.querySelector(".aui-mask").classList.remove("aui-mask-out");
}
return true;
},
success: function(params,callback){
var self = this;
params.type = "success";
return self.create(params,callback);
},
fail: function(params,callback){
var self = this;
params.type = "fail";
return self.create(params,callback);
},
custom:function(params,callback){
var self = this;
params.type = "custom";
return self.create(params,callback);
},
loading:function(params,callback){
var self = this;
params.type = "loading";
return self.create(params,callback);
}
};
window.auiToast = auiToast;
})(window);

File diff suppressed because one or more lines are too long