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,11 @@
.agreement span {
font-size: 0.32rem;
font-weight: bold;
margin-bottom: 0.3rem;
display: inline-block;
}
.agreement p {
font-size: 0.28rem;
margin-bottom: 0.36rem;
color: #333;
}

View File

@@ -0,0 +1,43 @@
.header span {
color: #fff;
font-size: 0.32rem;
}
.header {
position: fixed;
width: 100%;
height: 0.9rem;
left: 0;
top: 0;
display: flex;
align-items: center;
padding: 0 0.3rem;
box-sizing: border-box;
z-index: 999;
background: #fb7299;
}
.content img {
width: 1.4rem;
height: 1.4rem;
margin-bottom: 0.4rem;
}
.content p {
font-size: 0.34rem;
margin-bottom: 0.18rem;
font-weight: 400;
}
.content span {
font-size: 0.3rem;
color: #666;
line-height: 0.42rem;
padding: 0 0.3rem;
}
.content{
width: 100%;
margin-top: 0.9rem;
display: flex;
padding: 30% 0;
align-items: center;
flex-direction: column;
justify-content: center;
text-align: center;
}

View File

@@ -0,0 +1,42 @@
body,
html,
ul,
li,
h2,
h3,
h4,
h5,
h6,
h1,
p,
i {
margin: 0;
list-style: none;
padding: 0;
}
a {
text-decoration: none;
color: #333;
user-select: none;
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
}
input {
outline: none;
}
body, html {
width: 100%;
height: 100%;
}
::-webkit-scrollbar {
width: 0;
height: 0;
}
.swiper-wrapper .swiper-slide {
height: calc(100vh - 1.6rem - 1rem);
overflow-y: scroll;
}

View File

@@ -0,0 +1,42 @@
.null i {
font-size: 0.9rem;
}
.null p {
font-size: 0.24rem;
color: #666;
}
.content_list{
margin-top: 0.9rem;
}
.null{
text-align: center;
margin: 0 auto;
margin-top: 0.3rem;
}
.content_list .title {
font-size: 0.34rem;
color: #333;
margin-bottom: 0.26rem;
margin-top: 0.3rem;
}
.content_list ul {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}
.content_list ul li{
width: 48%;
margin-bottom: 0.3rem;
}
.content_list .content_img img{
width: 100%;
border-radius: 0.1rem;
}
.content_list .content_text .tua{
color: #333;
font-size: 0.3rem;
overflow: hidden;
text-overflow: ellipsis;
white-space:nowrap;
margin-bottom: 0.08rem;
}

View File

@@ -0,0 +1,482 @@
/*! PhotoSwipe Default UI CSS by Dmitry Semenov | photoswipe.com | MIT license */
/*
Contents:
1. Buttons
2. Share modal and links
3. Index indicator ("1 of X" counter)
4. Caption
5. Loading indicator
6. Additional styles (root element, top bar, idle state, hidden state, etc.)
*/
/*
1. Buttons
*/
/* <button> css reset */
.pswp__button {
width: 44px;
height: 44px;
position: relative;
background: none;
cursor: pointer;
overflow: visible;
-webkit-appearance: none;
display: block;
border: 0;
padding: 0;
margin: 0;
float: right;
opacity: 0.75;
-webkit-transition: opacity 0.2s;
transition: opacity 0.2s;
-webkit-box-shadow: none;
box-shadow: none; }
.pswp__button:focus, .pswp__button:hover {
opacity: 1; }
.pswp__button:active {
outline: none;
opacity: 0.9; }
.pswp__button::-moz-focus-inner {
padding: 0;
border: 0; }
/* pswp__ui--over-close class it added when mouse is over element that should close gallery */
.pswp__ui--over-close .pswp__button--close {
opacity: 1; }
.pswp__button,
.pswp__button--arrow--left:before,
.pswp__button--arrow--right:before {
background: url("../img/default-skin.png") 0 0 no-repeat;
background-size: 264px 88px;
width: 44px;
height: 44px; }
@media (-webkit-min-device-pixel-ratio: 1.1), (-webkit-min-device-pixel-ratio: 1.09375), (min-resolution: 105dpi), (min-resolution: 1.1dppx) {
/* Serve SVG sprite if browser supports SVG and resolution is more than 105dpi */
.pswp--svg .pswp__button,
.pswp--svg .pswp__button--arrow--left:before,
.pswp--svg .pswp__button--arrow--right:before {
background-image: url("../img/default-skin.svg"); }
.pswp--svg .pswp__button--arrow--left,
.pswp--svg .pswp__button--arrow--right {
background: none; } }
.pswp__button--close {
background-position: 0 -44px; }
.pswp__button--share {
background-position: -44px -44px; }
.pswp__button--fs {
display: none; }
.pswp--supports-fs .pswp__button--fs {
display: block; }
.pswp--fs .pswp__button--fs {
background-position: -44px 0; }
.pswp__button--zoom {
display: none;
background-position: -88px 0; }
.pswp--zoom-allowed .pswp__button--zoom {
display: block; }
.pswp--zoomed-in .pswp__button--zoom {
background-position: -132px 0; }
/* no arrows on touch screens */
.pswp--touch .pswp__button--arrow--left,
.pswp--touch .pswp__button--arrow--right {
visibility: hidden; }
/*
Arrow buttons hit area
(icon is added to :before pseudo-element)
*/
.pswp__button--arrow--left,
.pswp__button--arrow--right {
background: none;
top: 50%;
margin-top: -50px;
width: 70px;
height: 100px;
position: absolute; }
.pswp__button--arrow--left {
left: 0; }
.pswp__button--arrow--right {
right: 0; }
.pswp__button--arrow--left:before,
.pswp__button--arrow--right:before {
content: '';
top: 35px;
background-color: rgba(0, 0, 0, 0.3);
height: 30px;
width: 32px;
position: absolute; }
.pswp__button--arrow--left:before {
left: 6px;
background-position: -138px -44px; }
.pswp__button--arrow--right:before {
right: 6px;
background-position: -94px -44px; }
/*
2. Share modal/popup and links
*/
.pswp__counter,
.pswp__share-modal {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none; }
.pswp__share-modal {
display: block;
background: rgba(0, 0, 0, 0.5);
width: 100%;
height: 100%;
top: 0;
left: 0;
padding: 10px;
position: absolute;
z-index: 1600;
opacity: 0;
-webkit-transition: opacity 0.25s ease-out;
transition: opacity 0.25s ease-out;
-webkit-backface-visibility: hidden;
will-change: opacity; }
.pswp__share-modal--hidden {
display: none; }
.pswp__share-tooltip {
z-index: 1620;
position: absolute;
background: #FFF;
top: 56px;
border-radius: 2px;
display: block;
width: auto;
right: 44px;
-webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
-webkit-transform: translateY(6px);
-ms-transform: translateY(6px);
transform: translateY(6px);
-webkit-transition: -webkit-transform 0.25s;
transition: transform 0.25s;
-webkit-backface-visibility: hidden;
will-change: transform; }
.pswp__share-tooltip a {
display: block;
padding: 8px 12px;
color: #000;
text-decoration: none;
font-size: 14px;
line-height: 18px; }
.pswp__share-tooltip a:hover {
text-decoration: none;
color: #000; }
.pswp__share-tooltip a:first-child {
/* round corners on the first/last list item */
border-radius: 2px 2px 0 0; }
.pswp__share-tooltip a:last-child {
border-radius: 0 0 2px 2px; }
.pswp__share-modal--fade-in {
opacity: 1; }
.pswp__share-modal--fade-in .pswp__share-tooltip {
-webkit-transform: translateY(0);
-ms-transform: translateY(0);
transform: translateY(0); }
/* increase size of share links on touch devices */
.pswp--touch .pswp__share-tooltip a {
padding: 16px 12px; }
a.pswp__share--facebook:before {
content: '';
display: block;
width: 0;
height: 0;
position: absolute;
top: -12px;
right: 15px;
border: 6px solid transparent;
border-bottom-color: #FFF;
-webkit-pointer-events: none;
-moz-pointer-events: none;
pointer-events: none; }
a.pswp__share--facebook:hover {
background: #3E5C9A;
color: #FFF; }
a.pswp__share--facebook:hover:before {
border-bottom-color: #3E5C9A; }
a.pswp__share--twitter:hover {
background: #55ACEE;
color: #FFF; }
a.pswp__share--pinterest:hover {
background: #CCC;
color: #CE272D; }
a.pswp__share--download:hover {
background: #DDD; }
/*
3. Index indicator ("1 of X" counter)
*/
.pswp__counter {
position: absolute;
left: 0;
top: 0;
height: 44px;
font-size: 13px;
line-height: 44px;
color: #FFF;
opacity: 0.75;
padding: 0 10px; }
/*
4. Caption
*/
.pswp__caption {
position: absolute;
left: 0;
bottom: 0;
width: 100%;
min-height: 44px; }
.pswp__caption small {
font-size: 11px;
color: #BBB; }
.pswp__caption__center {
text-align: left;
max-width: 420px;
margin: 0 auto;
font-size: 13px;
padding: 10px;
line-height: 20px;
color: #CCC; }
.pswp__caption--empty {
display: none; }
/* Fake caption element, used to calculate height of next/prev image */
.pswp__caption--fake {
visibility: hidden; }
/*
5. Loading indicator (preloader)
You can play with it here - http://codepen.io/dimsemenov/pen/yyBWoR
*/
.pswp__preloader {
width: 44px;
height: 44px;
position: absolute;
top: 0;
left: 50%;
margin-left: -22px;
opacity: 0;
-webkit-transition: opacity 0.25s ease-out;
transition: opacity 0.25s ease-out;
will-change: opacity;
direction: ltr; }
.pswp__preloader__icn {
width: 20px;
height: 20px;
margin: 12px; }
.pswp__preloader--active {
opacity: 1; }
.pswp__preloader--active .pswp__preloader__icn {
/* We use .gif in browsers that don't support CSS animation */
background: url(preloader.gif) 0 0 no-repeat; }
.pswp--css_animation .pswp__preloader--active {
opacity: 1; }
.pswp--css_animation .pswp__preloader--active .pswp__preloader__icn {
-webkit-animation: clockwise 500ms linear infinite;
animation: clockwise 500ms linear infinite; }
.pswp--css_animation .pswp__preloader--active .pswp__preloader__donut {
-webkit-animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite;
animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite; }
.pswp--css_animation .pswp__preloader__icn {
background: none;
opacity: 0.75;
width: 14px;
height: 14px;
position: absolute;
left: 15px;
top: 15px;
margin: 0; }
.pswp--css_animation .pswp__preloader__cut {
/*
The idea of animating inner circle is based on Polymer ("material") loading indicator
by Keanu Lee https://blog.keanulee.com/2014/10/20/the-tale-of-three-spinners.html
*/
position: relative;
width: 7px;
height: 14px;
overflow: hidden; }
.pswp--css_animation .pswp__preloader__donut {
-webkit-box-sizing: border-box;
box-sizing: border-box;
width: 14px;
height: 14px;
border: 2px solid #FFF;
border-radius: 50%;
border-left-color: transparent;
border-bottom-color: transparent;
position: absolute;
top: 0;
left: 0;
background: none;
margin: 0; }
@media screen and (max-width: 1024px) {
.pswp__preloader {
position: relative;
left: auto;
top: auto;
margin: 0;
float: right; } }
@-webkit-keyframes clockwise {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg); }
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg); } }
@keyframes clockwise {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg); }
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg); } }
@-webkit-keyframes donut-rotate {
0% {
-webkit-transform: rotate(0);
transform: rotate(0); }
50% {
-webkit-transform: rotate(-140deg);
transform: rotate(-140deg); }
100% {
-webkit-transform: rotate(0);
transform: rotate(0); } }
@keyframes donut-rotate {
0% {
-webkit-transform: rotate(0);
transform: rotate(0); }
50% {
-webkit-transform: rotate(-140deg);
transform: rotate(-140deg); }
100% {
-webkit-transform: rotate(0);
transform: rotate(0); } }
/*
6. Additional styles
*/
/* root element of UI */
.pswp__ui {
-webkit-font-smoothing: auto;
visibility: visible;
opacity: 1;
z-index: 1550; }
/* top black bar with buttons and "1 of X" indicator */
.pswp__top-bar {
position: absolute;
left: 0;
top: 0;
height: 44px;
width: 100%; }
.pswp__caption,
.pswp__top-bar,
.pswp--has_mouse .pswp__button--arrow--left,
.pswp--has_mouse .pswp__button--arrow--right {
-webkit-backface-visibility: hidden;
will-change: opacity;
-webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); }
/* pswp--has_mouse class is added only when two subsequent mousemove events occur */
.pswp--has_mouse .pswp__button--arrow--left,
.pswp--has_mouse .pswp__button--arrow--right {
visibility: visible; }
.pswp__top-bar,
.pswp__caption {
background-color: rgba(0, 0, 0, 0.5); }
/* pswp__ui--fit class is added when main image "fits" between top bar and bottom bar (caption) */
.pswp__ui--fit .pswp__top-bar,
.pswp__ui--fit .pswp__caption {
background-color: rgba(0, 0, 0, 0.3); }
/* pswp__ui--idle class is added when mouse isn't moving for several seconds (JS option timeToIdle) */
.pswp__ui--idle .pswp__top-bar {
opacity: 0; }
.pswp__ui--idle .pswp__button--arrow--left,
.pswp__ui--idle .pswp__button--arrow--right {
opacity: 0; }
/*
pswp__ui--hidden class is added when controls are hidden
e.g. when user taps to toggle visibility of controls
*/
.pswp__ui--hidden .pswp__top-bar,
.pswp__ui--hidden .pswp__caption,
.pswp__ui--hidden .pswp__button--arrow--left,
.pswp__ui--hidden .pswp__button--arrow--right {
/* Force paint & create composition layer for controls. */
opacity: 0.001; }
/* pswp__ui--one-slide class is added when there is just one item in gallery */
.pswp__ui--one-slide .pswp__button--arrow--left,
.pswp__ui--one-slide .pswp__button--arrow--right,
.pswp__ui--one-slide .pswp__counter {
display: none; }
.pswp__element--disabled {
display: none !important; }
.pswp--minimal--dark .pswp__top-bar {
background: none; }

View File

@@ -0,0 +1,105 @@
.header {
position: fixed;
width: 100%;
top: 0;
left: 0;
right: 0;
z-index: 999;
height: 1.6rem;
}
.header .header_logo{
height: 0.88rem;
display: flex;
justify-content: space-between;
padding: 0 0.3rem;
align-items: center;
box-sizing: border-box;
}
.header_logo_search {
width: 82%;
}
.header .icon-taozi1{
font-size: 0.45rem;
}
.header .icon-wo{
font-size: 0.45rem;
}
.header .search{
width: 100%;
background: #fff;
height: 0.6rem;
border-radius: 0.6rem;
display: flex;
align-items: center;
box-sizing: border-box;
padding-left: 0.3rem;
}
.header .search i{
color: #999;
font-size: 0.26rem;
margin-right: 0.1rem;
padding-top: 0.02rem;
}
.header .search span{
font-size: 0.24rem;
color: #999;
}
.header_menu {
height: 0.72rem;
display: flex;
background: #fe7fa2;
justify-content: space-between;
align-items: center;
}
.header_menu .active_menu {
color: #ffffff !important;
}
.header_menu i{
display: inline-block;
width: 0.8rem;
height: 0.72rem;
font-size: 0.3rem;
background: #fe7fa2;
color: #e3e3e3;
line-height: 0.72rem;
text-align: center;
}
.header_menu ul{
display: flex;
flex: 1;
overflow-x: scroll;
padding-left: 0.3rem;
}
.header_menu ul li{
font-size: 0.26rem;
flex-shrink: 0;
margin-right: 0.26rem;
color: #d3d2d2;
}
.content {
padding-top: 1.6rem;
height: calc(100vh - 1.6rem - 1rem);
overflow-y: scroll;
}
.content h2 {
font-size: 20px;
}
.to_typeClass {
display: flex;
}
.pic-list {
}
.pic-list .title{
font-size: 0.34rem;
color: #333;
margin-top: 0.3rem;
}
.pic-list .title i{
color: #fb7299;
}
.pic-list .title span{}

View File

@@ -0,0 +1,11 @@
.imgList img {
width: 100%;
}
.imgList figure {
margin: 0;
font-size: 0;
}
.imgList figcaption {
display: none;
}

View File

@@ -0,0 +1,27 @@
.mechanism_list {
display: flex;
flex-wrap: wrap;
margin-top: 0.3rem;
padding: 0 0.3rem;
}
.mechanism_list li {
width: 25%;
text-align: center;
font-size: 0;
margin-bottom: 0.7rem;
}
.mechanism_list p {
font-size: 0.32rem;
margin-bottom: 0.06rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.mechanism_list span {
font-size: 0.24rem;
color: #fb7299;
}

View File

@@ -0,0 +1,41 @@
.model_list {
display: flex;
justify-content: space-around;
margin-top: 0.24rem;
flex-wrap: wrap;
}
.model_list .item {
margin-bottom: 0.6rem;
position: relative;
text-align: center;
width: 22%;
}
.model_list .item .top {
position: relative;
text-align: center;
}
.item .top img {
width: 1.2rem;
height: 1.2rem;
border-radius: 100%;
text-align: center;
}
.item .top span {
font-size: 0.22rem;
position: absolute;
left: 50%;
transform: translateX(-50%);
bottom: 0.06rem;
padding: 0.02rem 0.1rem;
background: rgb(0 0 0 / 58%);
color: #fff;
border-radius: 0.2rem;
}
.item p {
font-size: 0.24rem;
color: #7e7979;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}

View File

@@ -0,0 +1,25 @@
.model_info_header {
display: flex;
justify-content: flex-start;
align-items: center;
font-size: 0;
}
.model_info_header img{
width: 1.4rem;
height: 1.4rem;
margin-right: 0.2rem;
border-radius: 100%;
}
.right_text {
flex: 1;
}
.right_text p{
font-weight: 500;
font-size: 0.32rem;
margin-bottom: 0.12rem;
}
.right_text span{
font-size: 0.24rem;
color: #909090;
}

View File

@@ -0,0 +1,45 @@
.header_my{
display: flex;
align-items: center;
justify-content: center;
height: 4rem;
flex-direction: column;
}
.header_my i{
font-size: 1.2rem;
margin-bottom: 0.2rem;
color: #fff;
}
.header_my div{
font-size: 0.32rem;
color: #fff;
}
.content_my{
padding-bottom: 1rem
}
.content_my .list{
margin-top: 0.2rem
}
.list_item a{
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 0.3rem;
height: 0.96rem;
}
.list_item_left{
display: flex;
align-items: center;
}
.list_item_left i{
font-size: 0.4rem;
margin-right: 0.2rem
}
.list_item_text{
font-size: 0.3rem;
}
.icon-qianjin-tongyong{
font-size: 0.28rem;
color: #c3c0c0;
}

View File

@@ -0,0 +1,179 @@
/*! PhotoSwipe main CSS by Dmitry Semenov | photoswipe.com | MIT license */
/*
Styles for basic PhotoSwipe functionality (sliding area, open/close transitions)
*/
/* pswp = photoswipe */
.pswp {
display: none;
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
overflow: hidden;
-ms-touch-action: none;
touch-action: none;
z-index: 1500;
-webkit-text-size-adjust: 100%;
/* create separate layer, to avoid paint on window.onscroll in webkit/blink */
-webkit-backface-visibility: hidden;
outline: none; }
.pswp * {
-webkit-box-sizing: border-box;
box-sizing: border-box; }
.pswp img {
max-width: none; }
/* style is added when JS option showHideOpacity is set to true */
.pswp--animate_opacity {
/* 0.001, because opacity:0 doesn't trigger Paint action, which causes lag at start of transition */
opacity: 0.001;
will-change: opacity;
/* for open/close transition */
-webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); }
.pswp--open {
display: block; }
.pswp--zoom-allowed .pswp__img {
/* autoprefixer: off */
cursor: -webkit-zoom-in;
cursor: -moz-zoom-in;
cursor: zoom-in; }
.pswp--zoomed-in .pswp__img {
/* autoprefixer: off */
cursor: -webkit-grab;
cursor: -moz-grab;
cursor: grab; }
.pswp--dragging .pswp__img {
/* autoprefixer: off */
cursor: -webkit-grabbing;
cursor: -moz-grabbing;
cursor: grabbing; }
/*
Background is added as a separate element.
As animating opacity is much faster than animating rgba() background-color.
*/
.pswp__bg {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: #000;
opacity: 0;
-webkit-transform: translateZ(0);
transform: translateZ(0);
-webkit-backface-visibility: hidden;
will-change: opacity; }
.pswp__scroll-wrap {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: hidden; }
.pswp__container,
.pswp__zoom-wrap {
-ms-touch-action: none;
touch-action: none;
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0; }
/* Prevent selection and tap highlights */
.pswp__container,
.pswp__img {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-tap-highlight-color: transparent;
-webkit-touch-callout: none; }
.pswp__zoom-wrap {
position: absolute;
width: 100%;
-webkit-transform-origin: left top;
-ms-transform-origin: left top;
transform-origin: left top;
/* for open/close transition */
-webkit-transition: -webkit-transform 333ms cubic-bezier(0.4, 0, 0.22, 1);
transition: transform 333ms cubic-bezier(0.4, 0, 0.22, 1); }
.pswp__bg {
will-change: opacity;
/* for open/close transition */
-webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); }
.pswp--animated-in .pswp__bg,
.pswp--animated-in .pswp__zoom-wrap {
-webkit-transition: none;
transition: none; }
.pswp__container,
.pswp__zoom-wrap {
-webkit-backface-visibility: hidden; }
.pswp__item {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
overflow: hidden; }
.pswp__img {
position: absolute;
width: auto;
height: auto;
top: 0;
left: 0; }
/*
stretched thumbnail or div placeholder element (see below)
style is added to avoid flickering in webkit/blink when layers overlap
*/
.pswp__img--placeholder {
-webkit-backface-visibility: hidden; }
/*
div element that matches size of large image
large image loads on top of it
*/
.pswp__img--placeholder--blank {
background: #222; }
.pswp--ie .pswp__img {
width: 100% !important;
height: auto !important;
left: 0;
top: 0; }
/*
Error message appears when image is not loaded
(JS option errorMsg controls markup)
*/
.pswp__error-msg {
position: absolute;
left: 0;
top: 50%;
width: 100%;
text-align: center;
font-size: 14px;
line-height: 16px;
margin-top: -8px;
color: #CCC; }
.pswp__error-msg a {
color: #CCC;
text-decoration: underline; }

View File

@@ -0,0 +1,323 @@
.theme_color {
background: #fb7299;
}
.white_color {
color: #fff;
}
.header_theme1 {
position: fixed;
width: 100%;
height: 0.9rem;
left: 0;
top: 0;
display: flex;
align-items: center;
padding: 0 0.3rem;
box-sizing: border-box;
z-index: 999;
justify-content: space-between;
font-size: 0;
}
.header_theme1 i {
color: #fff;
margin-right: 0.2rem;
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
}
.header_theme1 span {
color: #fff;
font-size: 0.32rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.content_theme1 {
padding-top: 0.9rem;
padding-bottom: 1rem;
}
.padding_30 {
padding: 0.3rem 0.3rem 0 0.3rem;
}
.item_list .title {
font-size: 0.34rem;
color: #333;
margin-bottom: 0.26rem;
margin-top: 0.3rem;
}
.content_info {
padding-top: 0.9rem;
}
.item_list ul {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}
.item_list ul li {
width: 48%;
margin-bottom: 0.3rem;
}
.item_list ul .newest_img {
position: relative;
}
.item_list .newest_img img {
width: 100%;
border-radius: 0.1rem;
}
.item_list .newest_img span {
position: absolute;
padding: 0.08rem 0.14rem;
background: rgb(251 114 153 / 73%);
color: rgb(255 255 255 / 73%);
font-size: 0.24rem;
right: 0.2rem;
bottom: 0.42rem;
border-radius: 0.28rem;
}
.newest_text .tags {
display: flex;
flex-wrap: wrap;
margin-top: 0.08rem;
}
.newest_text .tags_item {
padding: 0.04rem 0.1rem;
font-size: 0.24rem;
background: #fb7299;
margin-right: 0.06rem;
color: #fff;
border-radius: 0.18rem;
margin-bottom: 0.06rem;
}
.tags_item a {
color: #fff;
}
.item_list .newest_text .t {
color: #333;
font-size: 0.3rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
margin-bottom: 0.08rem;
}
.newest_text .source {
color: #666;
font-size: 0.26rem;
margin-bottom: 0.02rem;
}
.footer {
display: flex;
align-items: center;
justify-content: space-around;
position: fixed;
z-index: 999;
bottom: 0;
left: 0;
right: 0;
background: #fff;
width: 100%;
height: 1rem;
border-top: 0.02rem solid #e8ebec;
}
.footer li {
text-align: center;
display: flex;
flex-direction: column;
}
.footer li a {
display: flex;
flex-direction: column;
}
.footer li i {
font-size: 0.3rem;
margin-bottom: 0.08rem;
}
.footer li span {
font-size: 0.24rem;
}
.footer_active i,
.footer_active span {
color: #fb7299;
}
.icon-back1{
margin-right: 0.2rem;
color: #fff;
}
.padding_33{
padding: 0.3rem 0.3rem 0 0.3rem;
}
.header_theme1 {
position: fixed;
width: 100%;
height: 0.9rem;
left: 0;
top: 0;
display: flex;
align-items: center;
padding: 0 0.3rem;
box-sizing: border-box;
z-index: 999;
justify-content: space-between;
font-size: 0;
}
.header_theme1_left i {
color: #fff;
margin-right: 0.2rem;
}
.header_theme1_left span {
color: #fff;
font-size: 0.32rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
width: 90%;
display: inline-block;
}
.header_theme1_left {
display: flex;
align-items: center;
flex: 1;
overflow: hidden;
}
.header_theme1_left i {
color: #fff;
margin-right: 0.2rem;
}
.content_theme1 {
padding-top: 0.9rem;
padding-bottom: 1rem;
}
.content_theme2 {
padding-top: 0.9rem;
}
.mechanism_list {
display: flex;
flex-wrap: wrap;
margin-top: 0.3rem;
padding: 0 0.3rem;
}
.item_list {
padding: 0.3rem 0.3rem 0 0.3rem;
box-sizing: border-box;
}
.item_list ul {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}
.item_list ul li{
width: 48%;
margin-bottom: 0.3rem;
}
.item_list ul .newest_img{
position: relative;
}
.item_list .newest_img img{
width: 100%;
border-radius: 0.1rem;
}
.item_list .newest_img span{
position: absolute;
padding: 0.08rem 0.14rem;
background: rgb(251 114 153 / 73%);
color: rgb(255 255 255 / 73%);
font-size: 0.24rem;
right: 0.2rem;
bottom: 0.42rem;
border-radius: 0.28rem;
}
.item_list .newest_text .t{
color: #333;
font-size: 0.3rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
margin-bottom: 0.08rem;
}
.newest_text .source {
color: #666;
font-size: 0.26rem;
margin-bottom: 0.02rem;
}
.newest_text .tags {
display: flex;
flex-wrap: wrap;
margin-top: 0.08rem;
}
.newest_text .tags_item {
padding: 0.04rem 0.1rem;
font-size: 0.24rem;
background: #fb7299;
margin-right: 0.06rem;
color: #fff;
border-radius: 0.18rem;
margin-bottom: 0.06rem;
}
.nodata {
text-align: center;
font-size: 14px;
color: #8d8d8d;
margin-bottom: 15px;
}
.item_list .title {
font-size: 0.34rem;
color: #333;
margin-bottom: 0.26rem;
margin-top: 0.3rem;
}
.model_list {
display: flex;
justify-content: space-around;
margin-top: 0.24rem;
flex-wrap: wrap;
}
.model_list .item {
margin-bottom: 0.6rem;
}
.item {
position: relative;
text-align: center;
width: 22%;
}
.top {
position: relative;
}
.item span {
font-size: 0.22rem;
position: absolute;
left: 50%;
transform: translateX(-50%);
bottom: 0.06rem;
padding: 0.02rem 0.1rem;
background: rgb(0 0 0 / 58%);
color: #fff;
border-radius: 0.2rem;
}
.item img {
width: 1.2rem;
height: 1.2rem;
border-radius: 100%;
}
.item p {
font-size: 0.24rem;
color: #7e7979;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}

View File

@@ -0,0 +1,67 @@
.search_input {
font-size: 0;
display: flex;
height: 0.88rem;
align-items: center;
box-sizing: border-box;
justify-content: space-between;
padding: 0 0.3rem;
position: fixed;
width: 100%;
left: 0;
top: 0;
z-index: 999;
}
.search_input input{
width: 80%;
border: none;
outline: none;
height: 0.6rem;
padding-left: 0.3rem;
border-radius: 0.6rem;
box-sizing: border-box;
font-size: 0.26rem;
}
.search_input i {
color: #fff;
font-size: 0.32rem;
font-weight: bolder;
}
.search_list ul .nodata{
font-size: 0.26rem;
width: 100%;
text-align: center;
color: #666;
margin-top: 0.4rem;
}
.loading {
position: fixed;
width: 100%;
height: 100%;
left: 0;
top: 0;
z-index: 999;
display: flex;
align-items: center;
justify-content: center;
display: none;
}
.back {
padding: 0.4rem 0.4rem;
background: #fb7299;
display: flex;
align-items: center;
justify-content: center;
border-radius: 0.16rem;
max-width: 4rem;
}
.back span {
font-size: 0.3rem;
letter-spacing: 0.02rem;
color: #fff;
}

View File

@@ -0,0 +1,42 @@
.swiper-wrapper .swiper-slide {
float: left;
}
.swiper-container {
overflow: hidden;
position: relative;
}
.swiper-pagination {
position: absolute;
bottom: 10px;
left: 50%;
transform: translateX(-50%);
}
.swiper-dot {
width: 7px;
height: 7px;
background: #fff;
border-radius: 100%;
margin-right: 5px;
float: left;
}
.swiper-button-prev,
.swiper-button-next {
position: absolute;
top: 50%;
transform: translateY(-50%);
color: #fff;
font-size: 30px;
cursor: pointer;
}
.swiper-button-prev {
left: 10px;
}
.swiper-button-next {
right: 10px;
}
.swiper-wrapper {
position: relative;
}
.swiper-active {
background: red !important;
}

View File

@@ -0,0 +1,90 @@
.header_tag_list{
position: fixed;
width: 100%;
height: 0.9rem;
left: 0;
top: 0;
display: flex;
align-items: center;
padding: 0 0.3rem;
box-sizing: border-box;
z-index: 999;
justify-content: space-between;
font-size: 0;
}
.header_tag_top i{
color: #fff;
margin-right: 0.2rem;
}
.header_tag_top span{
color: #fff;
font-size: 0.32rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.content_tag_list{
padding-top: 0.9rem;
}
.content_tag_list_center{
padding: 0.3rem 0.3rem 0 0.3rem;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}
.content_tag_list_center li{
width: 48%;
margin-bottom: 0.3rem;
}
.list_top{
position: relative;
}
.list_top img{
width: 100%;
border-radius: 0.1rem;
padding-bottom: 0.27rem;
}
.list_top span{
position: absolute;
padding: 0.08rem 0.14rem;
background: rgb(251 114 153 / 73%);
color: rgb(255 255 255 / 73%);
font-size: 0.24rem;
right: 0.2rem;
bottom: 0.42rem;
border-radius: 0.28rem;
}
.list_intr{
color: #333;
font-size: 0.3rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
margin-bottom: 0.08rem;
}
.list_name{
color: #666;
font-size: 0.26rem;
margin-bottom: 0.02rem;
}
.tag{
display: flex;
flex-wrap: wrap;
margin-top: 0.08rem;
}
.tag_item{
padding: 0.04rem 0.1rem;
font-size: 0.24rem;
background: #fb7299;
margin-right: 0.06rem;
color: #fff;
border-radius: 0.18rem;
margin-bottom: 0.06rem;
}
.tag_item a{
color: #fff;
}

View File

@@ -0,0 +1,30 @@
.content_theme1 {
padding-left: 0.3rem;
padding-right: 0.3rem;
}
.chioose {
margin-top: 0.3rem;
}
.chioose p {
font-size: 0.24rem;
margin-bottom: 0.14rem;
color: #666;
}
.chiooseWrap {
display: flex;
flex-wrap: wrap;
}
.chiooseWrap li {
width: 23.8%;
text-align: center;
font-size: 0.28rem;
border: 1px solid #ccc;
margin-bottom: 0.1rem;
padding: 0.1rem 0;
box-sizing: border-box;
margin-right: 0.1rem;
}
.chiooseWrap li:nth-child(4n) {
margin-right: 0 !important;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 547 B

View File

@@ -0,0 +1 @@
<svg width="264" height="88" viewBox="0 0 264 88" xmlns="http://www.w3.org/2000/svg"><title>default-skin 2</title><g fill="none" fill-rule="evenodd"><g><path d="M67.002 59.5v3.768c-6.307.84-9.184 5.75-10.002 9.732 2.22-2.83 5.564-5.098 10.002-5.098V71.5L73 65.585 67.002 59.5z" id="Shape" fill="#fff"/><g fill="#fff"><path d="M13 29v-5h2v3h3v2h-5zM13 15h5v2h-3v3h-2v-5zM31 15v5h-2v-3h-3v-2h5zM31 29h-5v-2h3v-3h2v5z" id="Shape"/></g><g fill="#fff"><path d="M62 24v5h-2v-3h-3v-2h5zM62 20h-5v-2h3v-3h2v5zM70 20v-5h2v3h3v2h-5zM70 24h5v2h-3v3h-2v-5z"/></g><path d="M20.586 66l-5.656-5.656 1.414-1.414L22 64.586l5.656-5.656 1.414 1.414L23.414 66l5.656 5.656-1.414 1.414L22 67.414l-5.656 5.656-1.414-1.414L20.586 66z" fill="#fff"/><path d="M111.785 65.03L110 63.5l3-3.5h-10v-2h10l-3-3.5 1.785-1.468L117 59l-5.215 6.03z" fill="#fff"/><path d="M152.215 65.03L154 63.5l-3-3.5h10v-2h-10l3-3.5-1.785-1.468L147 59l5.215 6.03z" fill="#fff"/><g><path id="Rectangle-11" fill="#fff" d="M160.957 28.543l-3.25-3.25-1.413 1.414 3.25 3.25z"/><path d="M152.5 27c3.038 0 5.5-2.462 5.5-5.5s-2.462-5.5-5.5-5.5-5.5 2.462-5.5 5.5 2.462 5.5 5.5 5.5z" id="Oval-1" stroke="#fff" stroke-width="1.5"/><path fill="#fff" d="M150 21h5v1h-5z"/></g><g><path d="M116.957 28.543l-1.414 1.414-3.25-3.25 1.414-1.414 3.25 3.25z" fill="#fff"/><path d="M108.5 27c3.038 0 5.5-2.462 5.5-5.5s-2.462-5.5-5.5-5.5-5.5 2.462-5.5 5.5 2.462 5.5 5.5 5.5z" stroke="#fff" stroke-width="1.5"/><path fill="#fff" d="M106 21h5v1h-5z"/><path fill="#fff" d="M109.043 19.008l-.085 5-1-.017.085-5z"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1,105 @@
class AjAX {
constructor() {
this.xhr = new XMLHttpRequest();
}
/**
*
* @param {*} params
* url: 字符串 请求地址,
* data: 对象
*/
get(params) {
return new Promise((success, error) => {
var record = ""
for (const key in params.data) {
record += `&${key}=${params.data[key]}`
}
record = record.replace("&", "?")
console.log(`${config.checkStage()}${params.url}${record}`);
this.xhr.open("GET", `${config.checkStage()}${params.url}${record}`)
this.xhr.send();
this.readystatechange(success, error)
})
}
post(params) {
console.log(params);
return new Promise((success, error) => {
this.xhr.open("POST", `${config.checkStage()}${params.url}`)
this.xhr.setRequestHeader("Content-type","application/json");
this.xhr.send(JSON.stringify(params.data));
this.readystatechange(success, error)
})
}
readystatechange(success, error) {
this.xhr.onreadystatechange = () => {
if (this.xhr.readyState == 4) {
if (this.xhr.status == 200) {
var res = JSON.parse(this.xhr.responseText);
// 业务逻辑状态码的判断
switch (res.status) {
case 200:
success(res.result || res.data)
break;
case 404:
alert(res.message)
throw new Error(res.message)
break;
default:
break;
}
} else {
error(this.xhr)
}
}
}
}
}
// a.get({
// url: '/index/class',
// data: {
// type: 1,
// page: 1
// },
// success: (res) => {
// console.log("拿到的数据为:", res);
// },
// error: (err) => {
// console.log("请求出错了:", err);
// }
// });
// function test() {
// return new Promise(function (success, error) {
// var a = 1
// setTimeout(() => {
// a += 1;
// success(a)
// }, 3000)
// })
// }
// var dd = async () => {
// // test()
// // .then((res) => {
// // console.log(res);
// // })
// // .catch()
// var num = await test();
// console.log(num);
// }
// dd()
// 回调地狱
// 异步返回值 回调 promise
// 系统级别判断
// await indexService.class({ type: 1, page: 1 })

View File

@@ -0,0 +1,47 @@
var config = {
// 开发阶段的请求基地址
devBaseUrl: 'http://127.0.0.1:3000/api/json',
// 测试阶段的请求基地址
testBaseUrl: 'http://127.0.0.1:3000/test/api',
// 上线阶段的请求基地址
prodBaseUrl: 'http://127.0.0.1:3000/prod/api',
stage: "dev", // dev test prod
apiList: {
type: '/class', // 请求分类
classList: '/classList', // 请求分类列表
index: '/index',
info: '/agent/info',
classListt:"/classList",
search:'/agent/search',
modelList: '/modelList',
mechanism:"/mechanism"
},
// 底部导航
footerArr: [
{ title: '首页', icon: 'icon-home', path: 'index.html' },
{ title: '机构', icon: 'icon-jigou', path: 'mechanism.html' },
{ title: '模特', icon: 'icon-me', path: 'model.html' },
{ title: '我的', icon: 'icon-wo', path: 'my.html' },
],
checkStage: function () {
switch (this.stage) {
case "dev":
return this.devBaseUrl;
break;
case "test":
return this.testBaseUrl;
break;
case "prod":
return this.prodBaseUrl;
break;
}
}
}

View File

@@ -0,0 +1,201 @@
var initPhotoSwipeFromDOM = function(gallerySelector) {
// parse slide data (url, title, size ...) from DOM elements
// (children of gallerySelector)
var parseThumbnailElements = function(el) {
var thumbElements = el.childNodes,
numNodes = thumbElements.length,
items = [],
figureEl,
linkEl,
size,
item;
for(var i = 0; i < numNodes; i++) {
figureEl = thumbElements[i]; // <figure> element
// include only element nodes
if(figureEl.nodeType !== 1) {
continue;
}
linkEl = figureEl.children[0]; // <a> element
size = linkEl.getAttribute('data-size').split('x');
// create slide object
item = {
src: linkEl.getAttribute('href'),
w: parseInt(size[0], 10),
h: parseInt(size[1], 10)
};
if(figureEl.children.length > 1) {
// <figcaption> content
item.title = figureEl.children[1].innerHTML;
}
if(linkEl.children.length > 0) {
// <img> thumbnail element, retrieving thumbnail url
item.msrc = linkEl.children[0].getAttribute('src');
}
item.el = figureEl; // save link to element for getThumbBoundsFn
items.push(item);
}
return items;
};
// find nearest parent element
var closest = function closest(el, fn) {
return el && ( fn(el) ? el : closest(el.parentNode, fn) );
};
// triggers when user clicks on thumbnail
var onThumbnailsClick = function(e) {
e = e || window.event;
e.preventDefault ? e.preventDefault() : e.returnValue = false;
var eTarget = e.target || e.srcElement;
// find root element of slide
var clickedListItem = closest(eTarget, function(el) {
return (el.tagName && el.tagName.toUpperCase() === 'FIGURE');
});
if(!clickedListItem) {
return;
}
// find index of clicked item by looping through all child nodes
// alternatively, you may define index via data- attribute
var clickedGallery = clickedListItem.parentNode,
childNodes = clickedListItem.parentNode.childNodes,
numChildNodes = childNodes.length,
nodeIndex = 0,
index;
for (var i = 0; i < numChildNodes; i++) {
if(childNodes[i].nodeType !== 1) {
continue;
}
if(childNodes[i] === clickedListItem) {
index = nodeIndex;
break;
}
nodeIndex++;
}
if(index >= 0) {
// open PhotoSwipe if valid index found
openPhotoSwipe( index, clickedGallery );
}
return false;
};
// parse picture index and gallery index from URL (#&pid=1&gid=2)
var photoswipeParseHash = function() {
var hash = window.location.hash.substring(1),
params = {};
if(hash.length < 5) {
return params;
}
var vars = hash.split('&');
for (var i = 0; i < vars.length; i++) {
if(!vars[i]) {
continue;
}
var pair = vars[i].split('=');
if(pair.length < 2) {
continue;
}
params[pair[0]] = pair[1];
}
if(params.gid) {
params.gid = parseInt(params.gid, 10);
}
return params;
};
var openPhotoSwipe = function(index, galleryElement, disableAnimation, fromURL) {
var pswpElement = document.querySelectorAll('.pswp')[0],
gallery,
options,
items;
items = parseThumbnailElements(galleryElement);
// define options (if needed)
options = {
// define gallery index (for URL)
galleryUID: galleryElement.getAttribute('data-pswp-uid'),
getThumbBoundsFn: function(index) {
// See Options -> getThumbBoundsFn section of documentation for more info
var thumbnail = items[index].el.getElementsByTagName('img')[0], // find thumbnail
pageYScroll = window.pageYOffset || document.documentElement.scrollTop,
rect = thumbnail.getBoundingClientRect();
return {x:rect.left, y:rect.top + pageYScroll, w:rect.width};
}
};
// PhotoSwipe opened from URL
if(fromURL) {
if(options.galleryPIDs) {
// parse real index when custom PIDs are used
// http://photoswipe.com/documentation/faq.html#custom-pid-in-url
for(var j = 0; j < items.length; j++) {
if(items[j].pid == index) {
options.index = j;
break;
}
}
} else {
// in URL indexes start from 1
options.index = parseInt(index, 10) - 1;
}
} else {
options.index = parseInt(index, 10);
}
// exit if index not found
if( isNaN(options.index) ) {
return;
}
if(disableAnimation) {
options.showAnimationDuration = 0;
}
// Pass data to PhotoSwipe and initialize it
gallery = new PhotoSwipe( pswpElement, PhotoSwipeUI_Default, items, options);
gallery.init();
};
// loop through all gallery elements and bind events
var galleryElements = document.querySelectorAll( gallerySelector );
for(var i = 0, l = galleryElements.length; i < l; i++) {
galleryElements[i].setAttribute('data-pswp-uid', i+1);
galleryElements[i].onclick = onThumbnailsClick;
}
// Parse URL and open gallery if it contains #&pid=3&gid=1
var hashData = photoswipeParseHash();
if(hashData.pid && hashData.gid) {
openPhotoSwipe( hashData.pid , galleryElements[ hashData.gid - 1 ], true, true );
}
};

View File

@@ -0,0 +1,17 @@
function OnScrollBottom(className, callback, type = "2") {
if (type == 1) {
$(className).onscroll = function () {
if (Math.ceil(this.scrollHeight - this.scrollTop) == this.clientHeight) {
callback()
}
};
} else {
_(className).forEach((v, i) => {
v.onscroll = function () {
if (Math.ceil(this.scrollHeight - this.scrollTop) == this.clientHeight) {
callback()
}
};
})
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,11 @@
window.onload = function () {
getRem(750, 100)
};
window.onresize = function () {
getRem(750, 100)
};
function getRem(pwidth, prem) {
var html = document.getElementsByTagName("html")[0];
var oWidth = document.body.clientWidth || document.documentElement.clientWidth;
html.style.fontSize = oWidth / pwidth * prem + "px";
}

View File

@@ -0,0 +1,331 @@
(() => {
/**
* 构造函数
* @param {*} ParentElement 父节点的选择器名称
* @param {*} Configuration 插件的自定义设置项
*/
function Swiper(ParentElement, Configuration) {
// 默认参数
// slideChangeTransitionStart【完成】
// slideTo【完成】
this.defaultConf = {
reverse: false,
timer: '', // 保存自动播放的定时器
ParentElement: '.swiper-container',
wrapper: '.swiper-wrapper',
slide: '.swiper-slide',
config: {
loop: false, // 是否开启循环播放【完成】
time: 1, // 自动播放的间隔事件【完成】
speed: 300, // 切换轮播图时候用的时间【完成】
grabCursor: false, // 鼠标放到轮播图上是否显示为 小手【完成】
initialSlide: 0, // 默认显示第一个【完成】
auto: false, // 是否开启自动播放【完成】
},
// 小圆点的父标签选择器名称
pagination: {
el: '.swiper-pagination',
},
navigation: {
nextEl: '.swiper-button-next', // 下一页
prevEl: '.swiper-button-prev', // 上一页
},
}
this.defaultConf.ParentElement = ParentElement || this.defaultConf.ParentElement;
this.defaultConf.config.loop = Configuration.loop || this.defaultConf.config.loop;
this.defaultConf.config.time = Configuration.time || this.defaultConf.config.time;
this.defaultConf.config.speed = Configuration.speed || this.defaultConf.config.speed;
this.defaultConf.config.grabCursor = Configuration.grabCursor || this.defaultConf.config.grabCursor;
this.defaultConf.config.initialSlide = Configuration.initialSlide || this.defaultConf.config.initialSlide;
this.defaultConf.config.auto = Configuration.auto || this.defaultConf.config.auto;
this.defaultConf.wrapper = Configuration.wrapper || this.defaultConf.wrapper;
this.defaultConf.slide = Configuration.slide || this.defaultConf.slide;
this.slideArr = this._(`${this.defaultConf.wrapper} ${this.defaultConf.slide}`);
// 最外层 swiper-container 宽度
this.f = this.$(this.defaultConf.ParentElement).offsetWidth;
// 判断小圆点
if (Configuration.hasOwnProperty("pagination")) {
this.defaultConf.pagination.el = Configuration.pagination.el;
this.RenderDot()
}
// 判断使用自定义前进后退按钮
if (Configuration.hasOwnProperty("navigation")) {
this.RenderNavigation()
//判断下一页按钮的名称是否自定义
if (Configuration.navigation.hasOwnProperty("nextEl")) {
this.defaultConf.navigation.nextEl = Configuration.navigation.nextEl;
}
//判断上一页按钮的名称是否自定义
if (Configuration.navigation.hasOwnProperty("prevEl")) {
this.defaultConf.navigation.prevEl = Configuration.navigation.prevEl;
}
}
this.UserConfig = Configuration
this.init()
}
// 类的方法
Swiper.prototype = {
init: function () {
this.SetWrapperWidth();
this.defaultConf.config.auto ? this.AutoPlay() : '';
this.initSwiperSlide()
},
// 设置swiper-slide父类的宽度
SetWrapperWidth: function () {
// 计算swiper-slide的宽度
this.slideArr.forEach(v => v.style.width = `${this.f}px`)
this.$(this.defaultConf.wrapper).style = `
width: ${this.f * this.slideArr.length}px;
left: -${this.f * this.defaultConf.config.initialSlide}px;
transition: all ease ${this.defaultConf.config.speed / 1000}s;
cursor: ${this.defaultConf.config.grabCursor ? 'pointer' : ''} ;
`
},
/**
* 注册移动端滑动
*/
initSwiperSlide: function () {
var fa = this.$(this.defaultConf.ParentElement),
startX = 0,
startY = 0;
fa.addEventListener('touchstart', function (e) {
e.stopPropagation()
startX = e.targetTouches[0].pageX
startY = e.targetTouches[0].pageY
})
var getDirection = function (startx, starty, endx, endy) {
// 获得角度
var getAngle = function(angx, angy) {
return Math.atan2(angy, angx) * 180 / Math.PI;
};
var angx = endx - startx;
var angy = endy - starty;
var result = 0;
// 如果滑动距离太短
if (Math.abs(angx) < 2 && Math.abs(angy) < 2) {
return result;
}
var angle = getAngle(angx, angy);
if (angle >= -135 && angle <= -45) {
result = 1;
} else if (angle > 45 && angle < 135) {
result = 2;
} else if ((angle >= 135 && angle <= 180) || (angle >= -180 && angle < -135)) {
result = 3;
} else if (angle >= -45 && angle <= 45) {
result = 4;
}
return result;
}
fa.addEventListener('touchmove', (e) => {
e.stopPropagation()
var endX = e.changedTouches[0].pageX;
var endY = e.changedTouches[0].pageY;
var direction = getDirection(startX, startY, endX, endY);
if (direction == 3 || direction == 4) {
var x = parseInt(endX - startX) - 40
this.$(this.defaultConf.wrapper).style.webkitTransform = `translate3d(${x}px,0px,0px)`;
}
});
fa.addEventListener('touchend', (e) => {
e.stopPropagation()
var endX = e.changedTouches[0].pageX;
var endY = e.changedTouches[0].pageY;
var direction = getDirection(startX, startY, endX, endY);
switch (direction) {
case 0:
// console.log("未滑动!");
break;
case 1:
// console.log("向上!")
break;
case 2:
// console.log("向下!")
break;
case 3:
this.$(this.defaultConf.wrapper).style.webkitTransform = `translate3d(0px,0px,0px)`;
this.animation(-this.f)
this.CallMethods()
this.UserConfig.pagination && this.ChangeDotActive()
// console.log("向左!")
break;
case 4:
this.$(this.defaultConf.wrapper).style.webkitTransform = `translate3d(0px,0px,0px)`;
this.animation(this.f)
this.CallMethods()
this.UserConfig.pagination && this.ChangeDotActive()
// console.log("向右滑动");
break;
default:
}
})
},
CallMethods() {
if (this.UserConfig.hasOwnProperty("on")) {
var TotalLeft = Math.abs(parseInt(this.$(this.defaultConf.wrapper).style.left));
index = TotalLeft / this.f;
// 实现调用用户传入的方法,返回下标给用户
this.UserConfig.on && this.UserConfig.on.slideChangeTransitionStart(index)
}
},
// 生成小圆点
RenderDot: function () {
this.slideArr.forEach((v, i) => {
this.$(this.defaultConf.pagination.el).innerHTML +=
`
<div class="swiper-dot ${i == 0 ? 'swiper-active' : ''}"></div>
`
});
var Dot = this._(`${this.defaultConf.pagination.el} .swiper-dot`);
Dot.forEach((v, i) => {
v.onclick = () => {
this.UserConfig.pagination && this.ChangeDotActive(i)
this.$(this.defaultConf.wrapper).style.left = `-${i * this.f}px`;
}
})
},
// 渲染左右前进后退按钮
RenderNavigation: function () {
var prev = this.$(this.defaultConf.navigation.prevEl);
var next = this.$(this.defaultConf.navigation.nextEl);
prev.innerText = "<";
next.innerText = ">";
this.BindNavigationClick(prev, next)
},
// 为上一页下一页按钮绑定切换事件
BindNavigationClick() {
// var a = this
// 下一页
this.$(this.defaultConf.navigation.nextEl).onclick = () => {
this.animation(-this.f)
this.UserConfig.pagination && this.ChangeDotActive()
}
// 上一页
this.$(this.defaultConf.navigation.prevEl).onclick = () => {
this.animation(this.f)
this.UserConfig.pagination && this.ChangeDotActive()
}
},
// 切换动画
animation(offset) {
var swiperWrapper = this.$(this.defaultConf.wrapper);
var y = parseInt(swiperWrapper.style.left) + offset,
max = -(this.f * (this.slideArr.length - 1));
// 如果时最后一张图
if (y < max) {
if (this.defaultConf.config.loop) {
swiperWrapper.style.left = "0px";
} else if (this.defaultConf.config.auto) {
this.defaultConf.reverse = true
this.animation(this.f)
}
return;
// 判断是不是第一张图
} else if (y > 0) {
if (this.defaultConf.config.loop == false && this.defaultConf.config.auto) {
this.defaultConf.reverse = false
swiperWrapper.style.left = `${y - this.f * 2}px`
}
if (this.defaultConf.config.loop) {
swiperWrapper.style.left = `${max}px`
}
return
} else {
if (this.defaultConf.config.loop == false
&& this.defaultConf.config.auto
&& this.defaultConf.reverse) {
swiperWrapper.style.left = `${y}px`
} else {
swiperWrapper.style.left = `${y}px`
}
}
},
ChangeDotActive(type = null) {
var Dot = this._(`${this.defaultConf.pagination.el} .swiper-dot`);
var index = "";
if (type == null) {
var TotalLeft = Math.abs(parseInt(this.$(this.defaultConf.wrapper).style.left));
index = TotalLeft / this.f;
} else {
index = type;
}
// 实现调用用户传入的方法,返回下标给用户
this.CallMethods()
// 清除所有的激活样式
Dot.forEach(val => val.className = "swiper-dot");
// 为你点击的li加激活样式
Dot[index].className = "swiper-dot swiper-active";
},
AutoPlay() {
this.defaultConf.timer = setInterval(() => {
if (this.defaultConf.config.loop == false
&& this.defaultConf.config.auto
&& this.defaultConf.reverse) {
this.animation(this.f)
} else {
this.animation(-this.f)
}
this.UserConfig.pagination && this.ChangeDotActive()
}, this.defaultConf.config.time * 1000)
this.$(this.defaultConf.ParentElement).onmouseover = function () {
clearInterval(this.defaultConf.timer)
}
this.$(this.defaultConf.ParentElement).onmouseout = () => {
this.AutoPlay()
}
},
// 通过js调用此方法,实现轮播图的切换
slideTo(index) {
this.$(this.defaultConf.wrapper).style.left = `-${index * this.f}px`;
this.UserConfig.pagination && this.ChangeDotActive()
},
$: function (className) {
return document.querySelector(className)
},
_: function (className) {
return document.querySelectorAll(className)
}
}
window.swiper = Swiper
})()

View File

@@ -0,0 +1,7 @@
class about{
constructor () {
header("关于我们")
}
}
new about()

View File

@@ -0,0 +1,46 @@
class collect{
constructor() {
header("我的收藏",'<i class="iconfont icon-xin"></i><i class="iconfont icon-home"></i>')
this.collect = JSON.parse(localStorage.getItem("likeArr")) == null
? []
: JSON.parse(localStorage.getItem("likeArr"));
this.GetLikeArr()
}
GetLikeArr() {
if (this.collect == null || this.collect.length == 0) {
document.querySelector(".content_list ul").innerHTML = "";
document.querySelector(".content_list ul").innerHTML =
`
<div class="null">
<i class="iconfont icon-wushuju"></i>
<p>暂无收藏</p>
</div>
`
} else {
document.querySelector(".content_list ul").innerHTML = "";
this.collect.forEach(v => {
document.querySelector(".content_list ul").innerHTML +=
`
<li>
<div class="content_img">
<a href="./info.html?id=${v.id}">
<img src="${v.img_src}">
</a>
</div>
<div class="content_text">
<a href="./info.html?id=${v.id}">
<p class="tua">${v.title}</p>
</a>
</div>
</li>
`
});
}
}
}
new collect()

View File

@@ -0,0 +1,140 @@
class index {
constructor() {
this.principal = [];
this.index = localStorage.getItem("index") == null ? 0 : localStorage.getItem("index");
footer()
this.getIndexData();
this.GetType();
}
// 获取横向分类的数据
async GetType() {
var res;
// 第一次访问app,本地没有缓存的principal分类,所以发送请求去获取
if (localStorage.getItem("principal") == null) {
var data = await indexServe.type();
console.log("data === ", data);
res = data.principal
localStorage.setItem("principal", JSON.stringify(data.principal))
localStorage.setItem("additional", JSON.stringify(data.additional))
} else {
res = JSON.parse(localStorage.getItem("principal"))
}
this.principal = res;
this.principal.unshift({
id: -1,
page: 0,
title: "首页",
content: []
})
this.principal.forEach((v, i) => {
v.content = [];
// 渲染横向菜单
$(".header_menu ul").innerHTML += `<li class="${i == this.index ? 'active_menu' : ''}">${v.title}</li>`;
// 生成横向的轮播图
if (i != 0) {
$(".swiper-container .swiper-wrapper").innerHTML += `<div class="swiper-slide item_list"></div>`
}
});
OnScrollBottom(".swiper-wrapper .swiper-slide", async () => {
if (index != 0) {
this.principal[this.index].page++;
if (this.principal[this.index].page <= this.principal[this.index].total_page) {
await this.GetClassList("more")
if (this.principal[this.index].page == this.principal[this.index].total_page) {
_(".swiper-wrapper .swiper-slide")[this.index].innerHTML += `<p class="nodata">...暂无数据...</p>`
}
}
}
})
console.log(this.principal);
this.initSwiper();
}
initSwiper() {
// 改变激活样式的封装
function changeAction(index) {
_(".header_menu ul li").forEach(v => {
v.className = ""
});
_(".header_menu ul li")[index].className = "active_menu"
}
var page = new swiper(".swiper-container", {
time: 3,
on: {
slideChangeTransitionStart: (index) => {
this.index = index;
localStorage.setItem("index", this.index)
changeAction(index)
this.GetClassList()
}
}
});
_(".header_menu ul li").forEach((v, i) => {
v.onclick = () => {
this.index = i;
localStorage.setItem("index", this.index)
page.slideTo(i);
changeAction(i);
this.GetClassList()
}
});
if (localStorage.getItem("index") != null) {
this.GetClassList()
page.slideTo(this.index);
}
}
// type click 表示点击或者滑动
// more 表示滚动加载数据
async GetClassList(type = "click") {
var getData = async () => {
var res = await indexServe.classList({
page: this.principal[this.index].page,
id: this.principal[this.index].id
});
this.principal[this.index].content = [
...this.principal[this.index].content,
...res.data
];
this.principal[this.index].total_page = res.total_page;
item(res.data, _(".swiper-wrapper .swiper-slide")[this.index])
}
if (this.index != 0) {
if (type == "click") {
if (this.principal[this.index].content == 0) {
await getData()
}
} else {
await getData()
}
}
}
async getIndexData() {
var res = await indexServe.index();
item(res.newest.data, $(".newest"))
item(res.recommended.data, $(".recommended"))
}
}
new index()

View File

@@ -0,0 +1,70 @@
class info {
constructor() {
this.likeArr = localStorage.getItem("likeArr") == null ? [] : JSON.parse(localStorage.getItem("likeArr"))
this.GetInfo()
}
async GetInfo() {
var res = await indexServe.info({
id: $_GET("id")
});
console.log(res);
header(res.title, '<i class="like iconfont icon-xin"></i>');
var isLike = this.likeArr.filter(v => v.id == res.id);
if (isLike.length != 0) {
$(".like").classList.add("icon-aixin")
$(".like").classList.remove("icon-xin")
}
$(".like").onclick = () => {
var isHave = this.likeArr.filter(v => v.id == res.id);
// 表示已经收藏
if (isHave.length != 0) {
this.likeArr = this.likeArr.filter(v => v.id != res.id)
// 表示未收藏
} else {
this.likeArr.push({
id: res.id,
title: res.title,
img_src: res.img_src
});
}
localStorage.setItem("likeArr", JSON.stringify(this.likeArr))
$(".like").classList.toggle("icon-xin")
$(".like").classList.toggle("icon-aixin")
}
res.imgs.forEach(v => {
console.log("111");
var img = new Image();
img.src = v;
img.onload = function () {
$(".imgList").innerHTML += `
<figure >
<a href="${v}" data-size="${img.width}x${img.height}">
<img src="${v}" alt="${res.title}" />
</a>
<figcaption itemprop="caption description">${res.title}</figcaption>
</figure>
`
}
});
initPhotoSwipeFromDOM(".imgList")
}
}
new info()

View File

@@ -0,0 +1,36 @@
class mechanism{
constructor () {
header("机构")
footer()
this.mechanismdo()
}
async mechanismdo() {
var res = await indexServe.mechanism();
mechanismList(res,$(".content_theme1"))
console.log(res)
}
}
new mechanism()
// class search {
// constructor() {
// this.search_header()
// }
// search_header() {
// $(".search_input .icon-back1").onclick = () => history.back()
// var searchVale
// $(".search_input .icon-search").onclick = async () => {
// searchVale = $(".search_input .search_msg").value
// var res = await indexServe.search({
// "keyword": searchVale
// });
// console.log(res)
// item(res,$(".search_list"))
// }
// }
// }
// new search

View File

@@ -0,0 +1,8 @@
class model{
constructor () {
footer()
}
}
new model()

View File

@@ -0,0 +1,74 @@
class model_info {
constructor() {
this.GetModelInfo()
}
async GetModelInfo() {
var res = await indexServe.modelList({
id: $_GET("id"),
page: 0
})
header(res.model_info.name)
console.log(res)
document.querySelector(".model_info_header").innerHTML = `
<img src="${res.model_info.portrait}" alt="${res.model_info.name}">
<div class="right_text">
<p>${res.model_info.name}</p>
<span>${res.model_info.explain}</span>
</div>
`
document.querySelector(".tazuop .title").innerText = "她的作品"
res.data.forEach(v => {
document.querySelector(".tazuop ul").innerHTML+=
`
<li>
<div class="newest_img">
<a href="./info.html?id=${v.id}">
<img src="${v.preview}" alt="${v.title}">
</a>
<span>${v.total}P</span>
</div>
<div class="newest_text">
<a href="./info.html?id=${v.id}">
<p class="t">${v.title}</p>
<p class="source">${v.source}</p>
</a>
<div class="tags">
${
(v.tags.map((t) => {
return `<div class="tags_item"><a href="./mechanism_info.html?id=${t.id}&type=tags&t=${t.title}">${t.title}</a></div>`
})).toString().replace(/,/ig, " ")
}
</div>
</div>
</li>
`
});
document.querySelector(".similar .title").innerText = "类似模特"
res.similar.forEach((v)=>{
document.querySelector(".similar .model_list").innerHTML+= `
<div class="item">
<div class="top">
<img src="${v.preview}" alt="${v.title}">
<span>${v.total}</span>
</div>
<p>${v.title}</p>
</div>
`
})
var items = document.querySelectorAll(".similar .model_list .item")
items.forEach((v,i)=>{
v.onclick = function () {
location.href = `model_info.html?id=${res.similar[i].id}&t=${res.similar[i].title}`
}
})
}
}
new model_info()

View File

@@ -0,0 +1,8 @@
class my{
constructor () {
footer()
}
}
new my()

View File

@@ -0,0 +1,20 @@
class search {
constructor() {
this.search_header()
}
search_header() {
$(".search_input .icon-back1").onclick = () => history.back()
$(".search_input .icon-search").onclick = async () => {
$(".search_list").innerHTML=""
var res = await indexServe.search({
"keyword": $(".search_input .search_msg").value
});
console.log(res)
item(res,$(".search_list"))
}
}
}
new search

View File

@@ -0,0 +1,43 @@
class taglist {
constructor() {
this.page = 0
this.gettaglist();
header(decodeURIComponent($_GET("title")))
}
async gettaglist() {
var res = await indexServe.taglist({
id: $_GET("id"),
page: this.page,
});
// this.total_page=1;
this.total_page = res.total_page;
item(res.data, $(".tagst"))
this.GETtp()
};
GETtp() {
window.onscroll = async () => {
var scrollTop = document.documentElement.scrollTop
var scrollHeight = document.documentElement.scrollHeight
var clientHeight = document.documentElement.clientHeight
if (parseInt(scrollHeight - scrollTop) == clientHeight) {
this.page++;
// console.log(this.page, "页数");
if (this.page <= this.total_page) {
await this.gettaglist();
if (this.page == this.total_page) {
$(".tagst").innerHTML += `<p class="nodata">...暂无数据...</p>`
}
}
}
}
};
}
new taglist()

View File

@@ -0,0 +1,69 @@
class typeClass {
constructor () {
this.principal = JSON.parse(localStorage.getItem("principal"));
this.additional = JSON.parse(localStorage.getItem("additional"));
header("分类管理")
this.initType()
}
initType() {
// 已选分类
$(".you_chioose .chiooseWrap").innerHTML = ""
this.principal.forEach(v => {
$(".you_chioose .chiooseWrap").innerHTML += `<li>${v.title}</li>`
});
// 未选分类
$(".chioose_list .chiooseWrap").innerHTML= ""
this.additional.forEach(v => {
$(".chioose_list .chiooseWrap").innerHTML += `<li>${v.title}</li>`
});
this.bindClick()
}
bindClick() {
_(".you_chioose .chiooseWrap li").forEach((v,i) => {
v.onclick = () => {
this.additional.push(this.principal[i])
this.principal = this.principal.filter((item,index) => {
if (item.id != this.principal[i].id) {
return item
}
});
localStorage.setItem("principal", JSON.stringify(this.principal))
localStorage.setItem("additional", JSON.stringify(this.additional))
this.initType()
}
})
_(".chioose_list .chiooseWrap li").forEach((v,i) => {
v.onclick = () => {
this.principal.unshift(this.additional[i])
this.additional = this.additional.filter((item,index) => {
if (item.id != this.additional[i].id) {
return item
}
});
localStorage.setItem("principal", JSON.stringify(this.principal))
localStorage.setItem("additional", JSON.stringify(this.additional))
this.initType()
}
})
}
}
new typeClass()

View File

@@ -0,0 +1,58 @@
class IndexService {
async type(params) {
return await (new AjAX()).get({
url: config.apiList.type,
data: params
});
}
async classList(params) {
return await (new AjAX()).get({
url: config.apiList.classList,
data: params
});
}
async index(params) {
return await (new AjAX()).get({
url: config.apiList.index,
data: params
});
}
async info(params) {
return await (new AjAX()).post({
url: config.apiList.info,
data: params
});
}
async taglist(params) {
return await (new AjAX()).get({
url: config.apiList.classListt,
data: params
});
}
async search(params) {
return await (new AjAX()).get({
url: config.apiList.search,
data: params
});
}
async mechanism(params) {
return await (new AjAX()).get({
url: config.apiList.mechanism,
data: params
});
}
async modelList(params) {
return await (new AjAX()).get({
url: config.apiList.modelList,
data: params
});
}
}
var indexServe = new IndexService()

View File

@@ -0,0 +1,151 @@
class Utils {
$(className) {
return document.querySelector(className)
}
_(className) {
return document.querySelectorAll(className)
}
footer() {
var currentPath = location.href;
var footerHtml = `
<ul class="footer">
${config.footerArr.map((v, i) => {
return `
<li class="${currentPath.includes(v.path) ? 'footer_active' : ''}">
<a href="${v.path}">
<i class="iconfont ${v.icon}"></i>
<span>${v.title}</span>
</a>
</li>
`
}).toString().replaceAll(",", "")
}
</ul>
`;
$("body").insertAdjacentHTML("beforeend", footerHtml)
}
item(arr, father) {
var html = `
<ul>
${arr.map((v, i) => {
return `
<li>
<div class="newest_img">
<a href="./info.html?id=${v.id}">
<img src="${v.preview || v.img_src}"
alt="${v.title}">
</a>
<span>${v.total || v.shuliang}P</span>
</div>
<div class="newest_text">
<a href="./info.html?id=${v.id}">
<p class="t">${v.title}</p>
${
v.hasOwnProperty("source")
? `<p class="source">${v.source}</p>`
: ''
}
</a>
${v.hasOwnProperty("tags")
? `<div class="tags">
${v.tags.map(item => {
return `
<div class="tags_item">
<a href="./tag_list.html?id=${item.id}&title=${item.title}">${item.title}</a>
</div>
`
}).toString().replaceAll(",", "")
}
</div>`
: ''
}
</div>
</li>
`;
}).toString().replaceAll(",", "")
}
</ul>
`;
father.innerHTML += html;
}
mechanismList(arr, father){
var html = `
<ul class="mechanism_list">
${arr.map((v, i) => {
return `
<li>
<a href="./mechanism_info.html?id=${v.id}&t=${v.title}">
<p>${v.title}</p>
<span>${v.quantity}</span>
</a>
</li>
`;
}).toString().replaceAll(",", "")
}
</ul>
`;
father.innerHTML += html;
}
// model(arr, father, test = "") {
// var html = `
// <div class="similar item_list padding_30">
// ${arr.map((v, i) => {
// return `
// <div class="title">${test}</div>
// <div class="item">
// <div class="top">
// <img src="${v.preview}" alt="${v.title}">
// <span>${v.total}</span>
// </div>
// <p>${v.title}</p>
// </div>
// `;
// }).toString().replaceAll(",", "")
// }
// </div>
// `;
// father.innerHTML += html;
// }
header(title, icon = "") {
var html = `
<div class="header_theme1 theme_color">
<div class="header_theme1_left">
<i class="iconfont icon-back1"></i>
<span>${title}</span>
</div>
<div class="header_theme1_right">
${icon}
</div>
</div>
`;
$("body").innerHTML = html + $("body").innerHTML;
$(".header_theme1_left .icon-back1").onclick = () => history.back()
}
$_GET(variable) {
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if (pair[0] == variable) { return pair[1]; }
}
return (false);
}
}
// 解构赋值
var { $, footer, _, item, $_GET, header, mechanismList,model} = new Utils()

View File

@@ -0,0 +1,37 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>UserAgreement</title>
<script src="../js/lib/rem.js"></script>
<link rel="stylesheet" href="http://at.alicdn.com/t/font_2124975_273pse87hq8.css">
<link rel="stylesheet" href="../css/clear.css">
<link rel="stylesheet" href="../css/public.css">
<link rel="stylesheet" href="../css/UserAgreement.css">
</head>
<body>
<div class="header_theme1 theme_color">
<div class="action">
<i class="iconfont icon-back1"></i>
<span>用户协议</span>
</div>
</div>
<div class="content_theme1">
<div class="agreement padding_30">
<span>用户须知</span>
<p>1:图片都来源于互联网,如果存在版权问题和纠纷,请通过电话或者邮箱联系我们,我们也会停止相应资源的展示下载等一切行为!</p>
<p>2:本App所有资源提供一切免费的下载,不存在任何的收费或者需要VIP的行为</p>
<p>3:使用过程中请勿随意传播资源,有任何问题可以及时给予我们反馈</p>
<p>4:本App内所有内容都符合法律法规,不存在少儿不宜的内容和信息等资源,如果有请及时反馈,我们会第一时间中止违规内容的展示</p>
<span>产品特点</span>
<p>1:海量的超高清图集,图片画质超清晰、全部超大尺寸或原尺寸的图片。目前已经收录35804套图集,共计:197.4394万张高清图片,每周新增约100套+图集!</p>
<p>2:在线浏览超高品质的图集,超一流的用户体验!一个帐号,电脑、手机、平板任性浏览!还可以收藏自己喜欢的图集,方便下次仔细欣赏。当然您也可以一键下载图集!</p>
<p>3:全网最专业的图集收集整理网站!中国的、日韩的、欧美的、泰国的,应有尽有。全部都是我们精心整理的,按人物、机构、标签的精准确分类!</p>
<p>4:特意开发的巧遇功能,随机从我们精心筛选的数千套图集里推送给你直接浏览体验。最贴心、好用、好看的功能,所有付费用户均可使用!</p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,24 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="http://at.alicdn.com/t/font_2124975_273pse87hq8.css">
<link rel="stylesheet" href="../css/clear.css">
<link rel="stylesheet" href="../css/public.css">
<link rel="stylesheet" href="../css/about.css">
<script src="../js/lib/rem.js"></script>
<title>about</title>
</head>
<body>
<div class="content">
<img src="../img/logo.png" alt="">
<p>水蜜桃</p>
<span>专业的写真App,为您提供国内外总计约198万张的写真图,满足您的各种喜好是我们最初衷的动力!</span>
</div>
</body>
<script src="../js/utils/index.js"></script>
<script src="../js/page/about.js"></script>
</html>

View File

@@ -0,0 +1,23 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="http://at.alicdn.com/t/font_2124975_273pse87hq8.css">
<link rel="stylesheet" href="../css/clear.css">
<link rel="stylesheet" href="../css/public.css">
<link rel="stylesheet" href="../css/collect.css">
<script src="../js/lib/rem.js"></script>
<title>collect</title>
</head>
<body>
<div class="content_list padding_33">
<ul>
</ul>
</div>
</body>
<script src="../js/utils/index.js"></script>
<script src="../js/page/collect.js"></script>
</html>

View File

@@ -0,0 +1,32 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="../css/swiper.css">
</head>
<body>
<div class="swiper-container">
<div class="swiper-wrapper">
<div class="swiper-slide">
</div>
<div class="swiper-slide">Slide 2</div>
<div class="swiper-slide">Slide 3</div>
</div>
</div>
</body>
<script src="../js/lib/swiper.js"></script>
<script>
new swiper(".swiper-container",{
auto: true,
time: 3
})
</script>
</html>

View File

@@ -0,0 +1,81 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="../js/lib/rem.js"></script>
<link rel="stylesheet" href="http://at.alicdn.com/t/font_2124975_273pse87hq8.css">
<link rel="stylesheet" href="../css/clear.css">
<link rel="stylesheet" href="../css/public.css">
<link rel="stylesheet" href="../css/swiper.css">
<link rel="stylesheet" href="../css/index.css">
</head>
<body>
<div class="header">
<div class="header_logo theme_color">
<i class="iconfont white_color icon-taozi1"></i>
<a class="header_logo_search" href="./search.html">
<div class="search">
<i class="iconfont icon-search"></i>
<span>198万张图,有你想要的...</span>
</div>
</a>
<i class="iconfont white_color icon-wo"></i>
</div>
<div class="header_menu">
<ul></ul>
<a class="to_typeClass" href="./typeClass.html"><i class="iconfont icon-edit"></i></a>
</div>
</div>
<div class="content">
<div class="swiper-container">
<div class="swiper-wrapper">
<div class="swiper-slide">
<div class="banner"></div>
<div class="pic-list item_list">
<div class="title">
<i class="iconfont icon-ziyuan"></i>
<span>最新收录</span>
</div>
<div class="item_all newest">
</div>
</div>
<div class="pic-list item_list">
<div class="title">
<i class="iconfont icon-ziyuan"></i>
<span>今日推荐</span>
</div>
<div class="item_all recommended">
</div>
</div>
</div>
</div>
</div>
</div>
</body>
<script src="../js/lib/swiper.js"></script>
<script src="../js/config/index.js"></script>
<script src="../js/utils/index.js"></script>
<script src="../js/lib/onscroll.js"></script>
<script src="../js/ajax/index.js"></script>
<script src="../js/service/indexService.js"></script>
<script src="../js/page/index.js"></script>
</html>

View File

@@ -0,0 +1,100 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="../js/lib/rem.js"></script>
<link rel="stylesheet" href="http://at.alicdn.com/t/font_2124975_273pse87hq8.css">
<link rel="stylesheet" href="../css/clear.css">
<link rel="stylesheet" href="../css/public.css">
<link rel="stylesheet" href="../css/photoswipe.css">
<link rel="stylesheet" href="../css/default-skin.css">
<link rel="stylesheet" href="../css/info.css">
</head>
<body>
<div class="imgList ">
</div>
<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
<!-- Background of PhotoSwipe.
It's a separate element as animating opacity is faster than rgba(). -->
<div class="pswp__bg"></div>
<!-- Slides wrapper with overflow:hidden. -->
<div class="pswp__scroll-wrap">
<!-- Container that holds slides.
PhotoSwipe keeps only 3 of them in the DOM to save memory.
Don't modify these 3 pswp__item elements, data is added later on. -->
<div class="pswp__container">
<div class="pswp__item"></div>
<div class="pswp__item"></div>
<div class="pswp__item"></div>
</div>
<!-- Default (PhotoSwipeUI_Default) interface on top of sliding area. Can be changed. -->
<div class="pswp__ui pswp__ui--hidden">
<div class="pswp__top-bar">
<!-- Controls are self-explanatory. Order can be changed. -->
<div class="pswp__counter"></div>
<button class="pswp__button pswp__button--close" title="Close (Esc)"></button>
<button class="pswp__button pswp__button--share" title="Share"></button>
<button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>
<button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>
<!-- Preloader demo https://codepen.io/dimsemenov/pen/yyBWoR -->
<!-- element will get class pswp__preloader--active when preloader is running -->
<div class="pswp__preloader">
<div class="pswp__preloader__icn">
<div class="pswp__preloader__cut">
<div class="pswp__preloader__donut"></div>
</div>
</div>
</div>
</div>
<div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
<div class="pswp__share-tooltip"></div>
</div>
<button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)">
</button>
<button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)">
</button>
<div class="pswp__caption">
<div class="pswp__caption__center"></div>
</div>
</div>
</div>
</div>
</body>
<script src="../js/config/index.js"></script>
<script src="../js/utils/index.js"></script>
<script src="../js/ajax/index.js"></script>
<script src="../js/service/indexService.js"></script>
<script src="../js/lib/photoswipe.min.js"></script>
<script src="../js/lib/photoswipe-ui-default.min.js"></script>
<script src="../js/lib/PhotoSwipeFromDOM.js"></script>
<script src="../js/page/info.js"></script>
</html>

View File

@@ -0,0 +1,28 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>机构</title>
<script src="../js/lib/rem.js"></script>
<link rel="stylesheet" href="http://at.alicdn.com/t/font_2124975_273pse87hq8.css">
<link rel="stylesheet" href="../css/clear.css">
<link rel="stylesheet" href="../css/public.css">
<link rel="stylesheet" href="../css/mechanism.css">
</head>
<body>
<div class="content_theme1">
</div>
</body>
<script src="../js/config/index.js"></script>
<script src="../js/utils/index.js"></script>
<script src="../js/ajax/index.js"></script>
<script src="../js/service/indexService.js"></script>
<script src="../js/page/mechanism.js"></script>
</html>

View File

@@ -0,0 +1,309 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>mechanism_list</title>
<script src="../js/lib/rem.js"></script>
<link rel="stylesheet" href="http://at.alicdn.com/t/font_2124975_273pse87hq8.css">
<link rel="stylesheet" href="../css/clear.css">
<link rel="stylesheet" href="../css/public.css">
<link rel="stylesheet" href="../css/model11.css">
</head>
<body>
<div class="header_theme1 theme_color">
<div class="action">
<a href="./mechanism.html">
<i class="iconfont icon-back1"></i>
</a>
<span>绅士约拍</span>
</div>
</div>
<div class="content_info">
<div class="jglist item_list padding_30">
<ul>
<li>
<div class="newest_img">
<a href="./info.html?id=46136">
<img src="https://tjg.gzhuibei.com/a/1/46136/0.jpg" alt="[绅士摄影] SS014 艺涵 - 灰丝美腿丝足">
</a>
<span>52P</span>
</div>
<div class="newest_text">
<a href="./info.html?id=46136">
<p class="t">[绅士摄影] SS014 艺涵 - 灰丝美腿丝足</p>
<p class="source">模特:艺涵</p>
<p class="source"></p>
</a>
<div class="tags">
<div class="tags_item"><a href="./mechanism_info.html?id=109&amp;type=tags&amp;t=灰丝">灰丝</a>
</div>
</div>
</div>
</li>
<li>
<div class="newest_img">
<a href="./info.html?id=46135">
<img src="https://tjg.gzhuibei.com/a/1/46135/0.jpg" alt="[绅士摄影] SS013 戚薇 - 肉丝美足">
</a>
<span>64P</span>
</div>
<div class="newest_text">
<a href="./info.html?id=46135">
<p class="t">[绅士摄影] SS013 戚薇 - 肉丝美足</p>
<p class="source">模特:戚薇</p>
<p class="source"></p>
</a>
<div class="tags">
<div class="tags_item"><a href="./mechanism_info.html?id=105&amp;type=tags&amp;t=丝足">丝足</a>
</div>
<div class="tags_item"><a href="./mechanism_info.html?id=139&amp;type=tags&amp;t=美足">美足</a>
</div>
</div>
</div>
</li>
<li>
<div class="newest_img">
<a href="./info.html?id=46134">
<img src="https://tjg.gzhuibei.com/a/1/46134/0.jpg" alt="[绅士摄影] SS012 宁宁 - 灰丝袜诱惑">
</a>
<span>57P</span>
</div>
<div class="newest_text">
<a href="./info.html?id=46134">
<p class="t">[绅士摄影] SS012 宁宁 - 灰丝袜诱惑</p>
<p class="source">模特:宁宁</p>
<p class="source"></p>
</a>
<div class="tags">
<div class="tags_item"><a
href="./mechanism_info.html?id=79&amp;type=tags&amp;t=丝袜诱惑">丝袜诱惑</a></div>
<div class="tags_item"><a href="./mechanism_info.html?id=109&amp;type=tags&amp;t=灰丝">灰丝</a>
</div>
</div>
</div>
</li>
<li>
<div class="newest_img">
<a href="./info.html?id=46133">
<img src="https://tjg.gzhuibei.com/a/1/46133/0.jpg" alt="[绅士摄影] SS011 戚薇 - 黑丝OL美腿套图">
</a>
<span>59P</span>
</div>
<div class="newest_text">
<a href="./info.html?id=46133">
<p class="t">[绅士摄影] SS011 戚薇 - 黑丝OL美腿套图</p>
<p class="source">模特:戚薇</p>
<p class="source"></p>
</a>
<div class="tags">
<div class="tags_item"><a
href="./mechanism_info.html?id=146&amp;type=tags&amp;t=女秘书">女秘书</a></div>
<div class="tags_item"><a
href="./mechanism_info.html?id=225&amp;type=tags&amp;t=黑丝制服">黑丝制服</a></div>
</div>
</div>
</li>
<li>
<div class="newest_img">
<a href="./info.html?id=46132">
<img src="https://tjg.gzhuibei.com/a/1/46132/0.jpg" alt="[绅士摄影] SS010 宁宁 - 美脚丝足套图">
</a>
<span>47P</span>
</div>
<div class="newest_text">
<a href="./info.html?id=46132">
<p class="t">[绅士摄影] SS010 宁宁 - 美脚丝足套图</p>
<p class="source">模特:宁宁</p>
<p class="source"></p>
</a>
<div class="tags">
<div class="tags_item"><a href="./mechanism_info.html?id=105&amp;type=tags&amp;t=丝足">丝足</a>
</div>
</div>
</div>
</li>
<li>
<div class="newest_img">
<a href="./info.html?id=46131">
<img src="https://tjg.gzhuibei.com/a/1/46131/0.jpg" alt="[绅士摄影] SS009 姗姗 - 芭蕾少女">
</a>
<span>84P</span>
</div>
<div class="newest_text">
<a href="./info.html?id=46131">
<p class="t">[绅士摄影] SS009 姗姗 - 芭蕾少女</p>
<p class="source">模特:姗姗</p>
<p class="source"></p>
</a>
<div class="tags">
<div class="tags_item"><a
href="./mechanism_info.html?id=126&amp;type=tags&amp;t=体操服">体操服</a></div>
<div class="tags_item"><a href="./mechanism_info.html?id=142&amp;type=tags&amp;t=美脚">美脚</a>
</div>
</div>
</div>
</li>
<li>
<div class="newest_img">
<a href="./info.html?id=46130">
<img src="https://tjg.gzhuibei.com/a/1/46130/0.jpg" alt="[绅士摄影] SS008 戚薇 - 肉丝美腿">
</a>
<span>49P</span>
</div>
<div class="newest_text">
<a href="./info.html?id=46130">
<p class="t">[绅士摄影] SS008 戚薇 - 肉丝美腿</p>
<p class="source">模特:戚薇</p>
<p class="source"></p>
</a>
<div class="tags">
<div class="tags_item"><a
href="./mechanism_info.html?id=258&amp;type=tags&amp;t=肉丝美腿">肉丝美腿</a></div>
</div>
</div>
</li>
<li>
<div class="newest_img">
<a href="./info.html?id=46129">
<img src="https://tjg.gzhuibei.com/a/1/46129/0.jpg" alt="[绅士摄影] SS007 美惠子 - 性感黑丝美足">
</a>
<span>53P</span>
</div>
<div class="newest_text">
<a href="./info.html?id=46129">
<p class="t">[绅士摄影] SS007 美惠子 - 性感黑丝美足</p>
<p class="source">模特:美惠子</p>
<p class="source"></p>
</a>
<div class="tags">
<div class="tags_item"><a
href="./mechanism_info.html?id=224&amp;type=tags&amp;t=黑丝美腿">黑丝美腿</a></div>
</div>
</div>
</li>
<li>
<div class="newest_img">
<a href="./info.html?id=46128">
<img src="https://tjg.gzhuibei.com/a/1/46128/0.jpg" alt="[绅士摄影] SS006 美惠子 - 肉丝美足套图">
</a>
<span>47P</span>
</div>
<div class="newest_text">
<a href="./info.html?id=46128">
<p class="t">[绅士摄影] SS006 美惠子 - 肉丝美足套图</p>
<p class="source">模特:美惠子</p>
<p class="source"></p>
</a>
<div class="tags">
<div class="tags_item"><a
href="./mechanism_info.html?id=258&amp;type=tags&amp;t=肉丝美腿">肉丝美腿</a></div>
</div>
</div>
</li>
<li>
<div class="newest_img">
<a href="./info.html?id=45431">
<img src="https://tjg.gzhuibei.com/a/1/45431/0.jpg" alt="[绅士摄影] NO.150 艾莎 套图">
</a>
<span>66P</span>
</div>
<div class="newest_text">
<a href="./info.html?id=45431">
<p class="t">[绅士摄影] NO.150 艾莎 套图</p>
<p class="source">模特:艾莎</p>
<p class="source"></p>
</a>
<div class="tags">
<div class="tags_item"><a
href="./mechanism_info.html?id=71&amp;type=tags&amp;t=丝袜美腿">丝袜美腿</a></div>
</div>
</div>
</li>
<li>
<div class="newest_img">
<a href="./info.html?id=45430">
<img src="https://tjg.gzhuibei.com/a/1/45430/0.jpg" alt="[绅士摄影] NO.149 杨光 套图">
</a>
<span>41P</span>
</div>
<div class="newest_text">
<a href="./info.html?id=45430">
<p class="t">[绅士摄影] NO.149 杨光 套图</p>
<p class="source">模特:杨光</p>
<p class="source"></p>
</a>
<div class="tags">
<div class="tags_item"><a
href="./mechanism_info.html?id=103&amp;type=tags&amp;t=肉丝袜">肉丝袜</a></div>
</div>
</div>
</li>
<li>
<div class="newest_img">
<a href="./info.html?id=45429">
<img src="https://tjg.gzhuibei.com/a/1/45429/0.jpg" alt="[绅士摄影] NO.148 依婷 套图">
</a>
<span>51P</span>
</div>
<div class="newest_text">
<a href="./info.html?id=45429">
<p class="t">[绅士摄影] NO.148 依婷 套图</p>
<p class="source">模特:依婷</p>
<p class="source"></p>
</a>
<div class="tags">
<div class="tags_item"><a href="./mechanism_info.html?id=31&amp;type=tags&amp;t=美腿">美腿</a>
</div>
<div class="tags_item"><a href="./mechanism_info.html?id=62&amp;type=tags&amp;t=御姐">御姐</a>
</div>
</div>
</div>
</li>
<li>
<div class="newest_img">
<a href="./info.html?id=44673">
<img src="https://tjg.gzhuibei.com/a/1/44673/0.jpg" alt="[绅士摄影] NO.147 佩佩 丝袜美腿写真套图">
</a>
<span>67P</span>
</div>
<div class="newest_text">
<a href="./info.html?id=44673">
<p class="t">[绅士摄影] NO.147 佩佩 丝袜美腿写真套图</p>
<p class="source">模特:佩佩</p>
<p class="source"></p>
</a>
<div class="tags">
<div class="tags_item"><a
href="./mechanism_info.html?id=258&amp;type=tags&amp;t=肉丝美腿">肉丝美腿</a></div>
</div>
</div>
</li>
</ul>
</div>
</div>
</body>
<script src="../js/lib/swiper.js"></script>
<script src="../js/config/index.js"></script>
<script src="../js/utils/index.js"></script>
<script src="../js/lib/onscroll.js"></script>
<script src="../js/ajax/index.js"></script>
<script src="../js/service/indexService.js"></script>
<script src="../js/page/mechanism_list.js"></script>
</html>

View File

@@ -0,0 +1,520 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>model11</title>
<script src="../js/lib/rem.js"></script>
<link rel="stylesheet" href="http://at.alicdn.com/t/font_2124975_273pse87hq8.css">
<link rel="stylesheet" href="../css/clear.css">
<link rel="stylesheet" href="../css/public.css">
<link rel="stylesheet" href="../css/model11.css">
</head>
<body>
<div class="header_theme1 theme_color">
<div class="action">
<i class="iconfont icon-back1"></i>
<span>模特</span>
</div>
</div>
<div class="content_theme1">
<div class="hot_models item_list padding_30">
<div class="title">热门模特</div>
<div class="model_list">
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/285.jpg" alt="张优 ( 张优Ayoyo )">
<span>11套</span>
</div>
<p>张优 ( 张优Ayoyo )</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/641.jpg" alt="吉川友 ">
<span>15套</span>
</div>
<p>吉川友 </p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/737.jpg" alt="谷麻纱美 ( 谷麻紗美 )">
<span>6套</span>
</div>
<p>谷麻纱美 ( 谷麻紗美 )</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/2682.jpg" alt="美里有纱 ( 美里有紗,みさとありさ )">
<span>17套</span>
</div>
<p>美里有纱 ( 美里有紗,みさとありさ )</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/1005.jpg" alt="希崎杰西卡 ( 希崎ジェシカ,希崎谢西嘉 )">
<span>16套</span>
</div>
<p>希崎杰西卡 ( 希崎ジェシカ,希崎谢西嘉 )</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/3762.jpg" alt="Loretta Fay ">
<span>14套</span>
</div>
<p>Loretta Fay </p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/519.jpg" alt="浜田翔子 ( 滨田翔子 )">
<span>51套</span>
</div>
<p>浜田翔子 ( 滨田翔子 )</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/2116.jpg" alt="文静 ( 丽柜文静 )">
<span>43套</span>
</div>
<p>文静 ( 丽柜文静 )</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/395.jpg" alt="夏晴 ( 夏晴Miso,腿模Miso )">
<span>50套</span>
</div>
<p>夏晴 ( 夏晴Miso,腿模Miso )</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/1282.jpg" alt="田依依 ( 田依依Tina )">
<span>8套</span>
</div>
<p>田依依 ( 田依依Tina )</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/781.jpg" alt="爱丽莎 ( 爱丽莎Lisa,爱丽莎baby )">
<span>39套</span>
</div>
<p>爱丽莎 ( 爱丽莎Lisa,爱丽莎baby )</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/1949.jpg" alt="菅谷梨沙子 ">
<span>3套</span>
</div>
<p>菅谷梨沙子 </p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/511.jpg" alt="星野亚希 ( 星野亚纪 )">
<span>51套</span>
</div>
<p>星野亚希 ( 星野亚纪 )</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/874.jpg" alt="相内梨花 ( 相内リカ )">
<span>3套</span>
</div>
<p>相内梨花 ( 相内リカ )</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/3276.jpg" alt="雅楠 ( 克拉女神雅楠 )">
<span>8套</span>
</div>
<p>雅楠 ( 克拉女神雅楠 )</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/918.jpg" alt="李梓熙 ( 李梓然,韩夏熙 )">
<span>40套</span>
</div>
<p>李梓熙 ( 李梓然,韩夏熙 )</p>
</div>
</div>
</div>
<div class="newest item_list padding_30">
<div class="title">最新模特</div>
<div class="model_list">
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6304.jpg" alt="焦糖可可">
</div>
<p>焦糖可可</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6284.jpg" alt="小雨baby">
</div>
<p>小雨baby</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6271.jpg" alt="奶油米">
</div>
<p>奶油米</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6270.jpg" alt="美熙">
</div>
<p>美熙</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6269.jpg" alt="向小圆">
</div>
<p>向小圆</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6268.jpg" alt="丽柜妖妖">
</div>
<p>丽柜妖妖</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6264.jpg" alt="Maruemon">
</div>
<p>Maruemon</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6263.jpg" alt="Sonson">
</div>
<p>Sonson</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6262.jpg" alt="Zia">
</div>
<p>Zia</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6261.jpg" alt="Mimmi">
</div>
<p>Mimmi</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6260.jpg" alt="PIA">
</div>
<p>PIA</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6259.jpg" alt="模特Jenny">
</div>
<p>模特Jenny</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6258.jpg" alt="大米米球">
</div>
<p>大米米球</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6257.jpg" alt="卜呦Mikon">
</div>
<p>卜呦Mikon</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6256.jpg" alt="一北亦北">
</div>
<p>一北亦北</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6255.jpg" alt="樱晚GiGi">
</div>
<p>樱晚GiGi</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6254.jpg" alt="云溪溪">
</div>
<p>云溪溪</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6253.jpg" alt="明日花桃桃">
</div>
<p>明日花桃桃</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6252.jpg" alt="罗爱乔">
</div>
<p>罗爱乔</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6251.jpg" alt="豆嘟嘟">
</div>
<p>豆嘟嘟</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6250.jpg" alt="喵酱">
</div>
<p>喵酱</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6249.jpg" alt="中田合美子">
</div>
<p>中田合美子</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6248.jpg" alt="西门小玉">
</div>
<p>西门小玉</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6247.jpg" alt="艾优蜜">
</div>
<p>艾优蜜</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6246.jpg" alt="小雨点">
</div>
<p>小雨点</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6245.jpg" alt="甜椒妙妙">
</div>
<p>甜椒妙妙</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6244.jpg" alt="奶泡娇">
</div>
<p>奶泡娇</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6243.jpg" alt="Rainight魈雨">
</div>
<p>Rainight魈雨</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6242.jpg" alt="妹抖青">
</div>
<p>妹抖青</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6241.jpg" alt="汪知子">
</div>
<p>汪知子</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6240.jpg" alt="COSER汐">
</div>
<p>COSER汐</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6239.jpg" alt="星澜是澜澜叫澜妹呀">
</div>
<p>星澜是澜澜叫澜妹呀</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6238.jpg" alt="真央Mao">
</div>
<p>真央Mao</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6237.jpg" alt="桜满三时">
</div>
<p>桜满三时</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6236.jpg" alt="木之本果">
</div>
<p>木之本果</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6235.jpg" alt="脱尾巴Mizuki">
</div>
<p>脱尾巴Mizuki</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6234.jpg" alt="维他奶泽">
</div>
<p>维他奶泽</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6233.jpg" alt="多啦雪">
</div>
<p>多啦雪</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6232.jpg" alt="工藤美樱">
</div>
<p>工藤美樱</p>
</div>
<div class="item">
<div class="top">
<img src="https://tjg.gzhuibei.com/t/6231.jpg" alt="咲羽ひなり">
</div>
<p>咲羽ひなり</p>
</div>
</div>
</div>
</div>
<ul class="footer">
<li>
<a href="./home.html">
<i class="iconfont icon-home"></i>
<span>首页</span>
</a>
</li>
<li>
<a href="./mechanism.html">
<i class="iconfont icon-jigou"></i>
<span>机构</span>
</a>
</li>
<li class="footer_active">
<a href="./model.html">
<i class="iconfont icon-me"></i>
<span>模特</span>
</a>
</li>
<li>
<a href="./my.html">
<i class="iconfont icon-wo"></i>
<span>我的</span>
</a>
</li>
</ul>
</body>
<script src="../js/lib/swiper.js"></script>
<script src="../js/config/index.js"></script>
<script src="../js/utils/index.js"></script>
<script src="../js/lib/onscroll.js"></script>
<script src="../js/ajax/index.js"></script>
<script src="../js/service/indexService.js"></script>
<script src="../js/page/model.js"></script>
</html>

View File

@@ -0,0 +1,37 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="http://at.alicdn.com/t/font_2124975_273pse87hq8.css">
<link rel="stylesheet" href="../css/clear.css">
<link rel="stylesheet" href="../css/public.css">
<link rel="stylesheet" href="../css/model_info.css">
<script src="../js/lib/rem.js"></script>
<title>model_info</title>
</head>
<body>
<div class="content_info">
<div class="model_info_header padding_30"></div>
<div class="tazuop item_list padding_30">
<div class="title"></div>
<ul></ul>
</div>
<div class="similar item_list padding_30">
<div class="title"></div>
<div class="model_list"> </div>
</div>
</div>
</body>
<script src="../js/utils/index.js"></script>
<script src="../js/config/index.js"></script>
<script src="../js/ajax/index.js"></script>
<script src="../js/service/indexService.js"></script>
<script src="../js/page/model_info.js"></script>
</html>

View File

@@ -0,0 +1,82 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>我的</title>
<script src="../js/lib/rem.js"></script>
<link rel="stylesheet" href="http://at.alicdn.com/t/font_2124975_273pse87hq8.css">
<link rel="stylesheet" href="../css/clear.css">
<link rel="stylesheet" href="../css/public.css">
<link rel="stylesheet" href="../css/my.css">
</head>
<body>
<div class="header_my theme_color">
<i class="iconfont icon-wo"></i>
<div>我的</div>
</div>
<div class="content_my">
<ul class="list">
<li class="list_item">
<a href="./collect.html">
<div class="list_item_left">
<i class="iconfont icon-zuji"></i>
<span class="list_item_text">我的收藏</span>
</div>
<i class="iconfont icon-qianjin-tongyong"></i>
</a>
</li>
<li class="list_item">
<a href="./about.html">
<div class="list_item_left">
<i class="iconfont icon-guanyu"></i>
<span class="list_item_text">关于我们</span>
</div>
<i class="iconfont icon-qianjin-tongyong "></i>
</a>
</li>
<li class="list_item">
<a href="./UserAgreement.html">
<div class="list_item_left">
<i class="iconfont icon-xieyiguanli"></i>
<span class="list_item_text">用户协议</span>
</div>
<i class="iconfont icon-qianjin-tongyong"></i>
</a>
</li>
<li class="list_item">
<a href="">
<div class="list_item_left">
<i class="iconfont icon-shengji"></i>
<span class="list_item_text">检测升级</span>
</div>
<i class="iconfont icon-qianjin-tongyong"></i>
</a>
</li>
<li class="list_item">
<a href="./ssc.html">
<div class="list_item_left">
<i class="iconfont icon-clean"></i>
<span class="list_item_text">清除缓存</span>
</div>
<i class="iconfont icon-qianjin-tongyong"></i>
</a>
</li>
</ul>
</div>
</body>
<script src="../js/config/index.js"></script>
<script src="../js/utils/index.js"></script>
<script src="../js/ajax/index.js"></script>
<script src="../js/service/indexService.js"></script>
<script src="../js/page/my.js"></script>
</html>

View File

@@ -0,0 +1,38 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="../js/lib/rem.js"></script>
<link rel="stylesheet" href="http://at.alicdn.com/t/font_2124975_273pse87hq8.css">
<link rel="stylesheet" href="../css/clear.css">
<link rel="stylesheet" href="../css/public.css">
<link rel="stylesheet" href="../css/search.css">
</head>
<body>
<header class="search_input theme_color">
<i class="iconfont icon-back1"></i>
<input class="search_msg" type="text" placeholder="请输入搜索关键字">
<i class="iconfont icon-search"></i>
</header>
<div class="content_theme2">
<div class="search_list item_list padding_30"></div>
<div class="isShow">
<div class="loading">
<div class="back" style="padding: 0.14rem 0.4rem;"><span>输入不能为空</span></div>
</div>
</div>
</body>
<script src="../js/config/index.js"></script>
<script src="../js/utils/index.js"></script>
<script src="../js/ajax/index.js"></script>
<script src="../js/service/indexService.js"></script>
<script src="../js/page/search.js"></script>
</html>

View File

@@ -0,0 +1,31 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="../js/lib/rem.js"></script>
<link rel="stylesheet" href="http://at.alicdn.com/t/font_2124975_273pse87hq8.css">
<link rel="stylesheet" href="../css/clear.css">
<link rel="stylesheet" href="../css/public.css">
<link rel="stylesheet" href="../css/tag_list.css">
<title>Document</title>
</head>
<body>
<div class="content_tag_list">
<div class="tagst item_list">
</div>
</div>
</body>
<script src="../js/config/index.js"></script>
<script src="../js/utils/index.js"></script>
<script src="../js/lib/onscroll.js"></script>
<script src="../js/ajax/index.js"></script>
<script src="../js/service/indexService.js"></script>
<script src="../js/page/tag_list.js"></script>
</html>

View File

@@ -0,0 +1,37 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>分类管理</title>
<script src="../js/lib/rem.js"></script>
<link rel="stylesheet" href="http://at.alicdn.com/t/font_2124975_273pse87hq8.css">
<link rel="stylesheet" href="../css/clear.css">
<link rel="stylesheet" href="../css/public.css">
<link rel="stylesheet" href="../css/typeClass.css">
</head>
<body>
<div class="content_theme1">
<div class="you_chioose chioose">
<p>点击删除以下分类</p>
<ul class="chiooseWrap"></ul>
</div>
<div class="chioose_list chioose">
<p>点击添加以下分类</p>
<ul class="chiooseWrap"></ul>
</div>
</div>
</body>
<script src="../js/config/index.js"></script>
<script src="../js/utils/index.js"></script>
<script src="../js/ajax/index.js"></script>
<script src="../js/service/indexService.js"></script>
<script src="../js/page/typeClass.js"></script>
</html>

View File

@@ -0,0 +1,9 @@
# GET http://127.0.0.1:3000/api/json/search?keyword=女神
POST http://127.0.0.1:3000/api/json/agent/search HTTP/1.1
content-type: application/json
{
"keyword": "女神"
}

View File

@@ -0,0 +1,47 @@
ajax: 封装ajax请求
config:做网站配置的(接口的请求地址,前端的一些其他固定死的参数)
lib:存放我们自己写的插件或者从网上下载插件
page:存放每个html页面所对应的js文件
service:ajax接口调用中间层
utils:工具函数
作业:
列表:list
详情:info
王安民
1 搜索 页面 search
http://127.0.0.1:3000/api/json/agent/search
2 分类管理 type class
公共头部调用
3 机构 页面 mechanism
http://127.0.0.1:3000/api/json/mechanism
蔡敏
4 机构列表页 mechanism_list
http://127.0.0.1:3000/api/json/mechanismList
5 模特 页面 model
http://127.0.0.1:3000/api/json/allModel
11 用户协议 UserAgreement
计梦梦
7 标签列表页 tag_list
http://127.0.0.1:3000/api/json/classList?page=0&id=139
8 我的 页面 my
陶瑞
9 收藏 collect
从本地读数据
10 关于我 about
6 模特详情页 model_info
http://127.0.0.1:3000/api/json/modelList
模特页面model.html 需要封装 热门模特 到js
所有页面用到头部,都调用公共方法