commit 55df3d398c261e8d4f650e9124baca2d8cbbaaa0 Author: bmy <2271608011@qq.com> Date: Fri Nov 29 20:54:53 2024 +0800 first commit diff --git a/css/page/domestic.css b/css/page/domestic.css new file mode 100644 index 0000000..e69de29 diff --git a/css/page/hot.css b/css/page/hot.css new file mode 100644 index 0000000..e69de29 diff --git a/css/page/index.css b/css/page/index.css new file mode 100644 index 0000000..74b1b13 --- /dev/null +++ b/css/page/index.css @@ -0,0 +1,62 @@ +/* 首页的css */ +@import "../tool/color.css"; +@import "../tool/size.css"; +@import "../tool/utils.css"; + + +.header { + .search { + font-size: var(--f15); + margin-top: .16rem; + color: var(--tipsTextColor); + height: 80%; + background: #f5f5f5; + border-radius: .5rem; + padding: 0 .2rem; + box-sizing: border-box; + i { + margin-right: .16rem; + } + p { + + } + } +} + +.content { + padding-top: 20px; + .banner { + width: calc(100% - .6rem); + border-radius: .6rem; + transform :translateY(0); + img { + width: 100%; + border-radius: .6rem; + } + + .swiper-slide{ + overflow: hidden; + } + } + + + .recommend-tag { + margin: 0.4rem 0; + justify-content: space-between; + li { + color: var(--textColor); + display: flex; + flex-direction: column; + align-items: center; + .icon { + font-size: var(--f25); + margin-bottom: .14rem; + } + .title { + font-size: var(--f14); + color: var(--tipsTextColor); + } + } + } +} + diff --git a/css/page/info.css b/css/page/info.css new file mode 100644 index 0000000..d57f208 --- /dev/null +++ b/css/page/info.css @@ -0,0 +1,48 @@ +@import "../tool/color.css"; +@import "../tool/size.css"; +@import "../tool/utils.css"; + + +.header { + color: var(--textColor); + font-size: var(--f16); + .title{ + margin: 0 .16rem; + } + .ilist { + i { + font-size: var(--f22) !important; + } + .icon-wujiaoxing { + margin-right: var(--f10); + } + } +} + + +.content { + .info_img_list { + .img_list { + height: 800px; + overflow: hidden; + img { + width: 100%; + } + } + .view_all { + font-size: var(--f16); + color: var(--themeColor); + width: 100%; + height: 60px; + bottom: 0; + background: linear-gradient(#ffffff08, #fefefe); + padding-top: .6rem; + box-sizing: border-box; + div {} + i { + margin-left: .1rem; + } + } + + } +} \ No newline at end of file diff --git a/css/page/me.css b/css/page/me.css new file mode 100644 index 0000000..e69de29 diff --git a/css/page/search.css b/css/page/search.css new file mode 100644 index 0000000..222a186 --- /dev/null +++ b/css/page/search.css @@ -0,0 +1,51 @@ +@import "../tool/color.css"; +@import "../tool/size.css"; +@import "../tool/utils.css"; + +.header { + color: var(--textColor); + + input { + margin: 0 .16rem; + font-size: var(--f15); + color: var(--tipsTextColor); + height: 80%; + background: #f5f5f5; + border-radius: .5rem; + padding: 0 .2rem; + box-sizing: border-box; + } + div { + font-size: 0.32rem !important; + + } +} + +.content { + .no-search { + padding-top: .4rem; + } + .have-search { + padding-top: .02rem; + } + .search_list { + margin-bottom: .7rem; + .title { + height: 40px; + font-size: var(--f13); + color: var(--tipsTextColor); + margin-bottom: 0.14rem; + } + ul { + li { + padding: 0 var(--f10); + margin-bottom: .16rem; + a { + font-size: var(--f16); + color: var(--textColor); + } + } + } + } +} + diff --git a/css/tool/clear.css b/css/tool/clear.css new file mode 100644 index 0000000..0265824 --- /dev/null +++ b/css/tool/clear.css @@ -0,0 +1,471 @@ +/* 清除默认样式 */ +/* + * Copyright (c) 2020. bmy + */ + + .iconfont { + font-size: .32rem; + } + +p,body,h1,h2,h3,h4,h5,h6,ul,li{ + margin: 0; + padding: 0; +} + + html { + font-family: sans-serif; /* 1 */ + line-height: 1; + } + + body { + width: 100%; + font-size: 0px; + background-color: #fff; + color: rgba(0, 0, 0, 0.87); + } + + ::-webkit-scrollbar { + width: 0; + height: 0; +} + + li { + list-style: none; + } + + article, + aside, + footer, + header, + nav, + section { + display: block; + } + + /** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + + h1 { + font-size: 2em; + margin: 0.67em 0; + } + + /* Grouping content + ========================================================================== */ + + /** + * Add the correct display in IE 9-. + * 1. Add the correct display in IE. + */ + + figcaption, + figure, + main { /* 1 */ + display: block; + } + + /** + * Add the correct margin in IE 8. + */ + + figure { + margin: 1em 40px; + } + + /** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + + hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ + } + + /** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + + pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ + white-space: pre-wrap; + word-break: break-all; + margin: 0; + } + + /* Text-level semantics + ========================================================================== */ + + /** + * 1. Remove the gray background on active links in IE 10. + * 2. Remove gaps in links underline in iOS 8+ and Safari 8+. + */ + + a { + text-decoration: none; + background-color: transparent; /* 1 */ + -webkit-text-decoration-skip: objects; /* 2 */ + user-select: none; + -webkit-user-select: none; + } + + /** + * Remove the outline on focused links when they are also active or hovered + * in all browsers (opinionated). + */ + + a:active, + a:hover { + outline-width: 0; + } + + /** + * 1. Remove the bottom border in Firefox 39-. + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + + abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ + } + + /** + * Prevent the duplicate application of `bolder` by the next rule in Safari 6. + */ + + b, + strong { + font-weight: inherit; + } + + /** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + + b, + strong { + font-weight: bolder; + } + + /** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + + code, + kbd, + samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ + } + + /** + * Add the correct font style in Android 4.3-. + */ + + dfn { + font-style: italic; + } + + /** + * Add the correct background and color in IE 9-. + */ + + mark { + background-color: #ff0; + color: #000; + } + + /** + * Add the correct font size in all browsers. + */ + + small { + font-size: 80%; + } + + /** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + + sub, + sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; + } + + sub { + bottom: -0.25em; + } + + sup { + top: -0.5em; + } + + /* Embedded content + ========================================================================== */ + + /** + * Add the correct display in IE 9-. + */ + + audio, + video { + display: inline-block; + } + + /** + * Add the correct display in iOS 4-7. + */ + + audio:not([controls]) { + display: none; + height: 0; + } + + /** + * Remove the border on images inside links in IE 10-. + */ + + img { + border-style: none; + } + + /** + * Hide the overflow in IE. + */ + + svg:not(:root) { + overflow: hidden; + } + + /* Forms + ========================================================================== */ + + /** + * 1. Change the font styles in all browsers (opinionated). + * 2. Remove the margin in Firefox and Safari. + */ + + button, + input, + optgroup, + select, + textarea { + border: none; + outline: none; + font-family: sans-serif; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ + } + + /** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + + button, + input { /* 1 */ + overflow: visible; + } + + /** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + + button, + select { /* 1 */ + text-transform: none; + } + + /** + * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` + * controls in Android 4. + * 2. Correct the inability to style clickable types in iOS and Safari. + */ + + button, + html [type="button"], /* 1 */ + [type="reset"], + [type="submit"] { + -webkit-appearance: button; /* 2 */ + } + + /** + * Remove the inner border and padding in Firefox. + */ + + button::-moz-focus-inner, + [type="button"]::-moz-focus-inner, + [type="reset"]::-moz-focus-inner, + [type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; + } + + /** + * Restore the focus styles unset by the previous rule. + */ + + button:-moz-focusring, + [type="button"]:-moz-focusring, + [type="reset"]:-moz-focusring, + [type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; + } + + /** + * Change the border, margin, and padding in all browsers (opinionated). + */ + + fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; + } + + /** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + + legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ + } + + /** + * 1. Add the correct display in IE 9-. + * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + + progress { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ + } + + /** + * Remove the default vertical scrollbar in IE. + */ + + textarea { + overflow: auto; + resize: vertical; + } + + /** + * 1. Add the correct box sizing in IE 10-. + * 2. Remove the padding in IE 10-. + */ + + [type="checkbox"], + [type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ + } + + /** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + + [type="number"]::-webkit-inner-spin-button, + [type="number"]::-webkit-outer-spin-button { + height: auto; + } + + /** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + + [type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ + } + + /** + * Remove the inner padding and cancel buttons in Chrome and Safari on macOS. + */ + + [type="search"]::-webkit-search-cancel-button, + [type="search"]::-webkit-search-decoration { + -webkit-appearance: none; + } + + /** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + + ::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ + } + + /* Interactive + ========================================================================== */ + + /* + * Add the correct display in IE 9-. + * 1. Add the correct display in Edge, IE, and Firefox. + */ + + details, /* 1 */ + menu { + display: block; + } + + /* + * Add the correct display in all browsers. + */ + + summary { + display: list-item; + } + + /* Scripting + ========================================================================== */ + + /** + * Add the correct display in IE 9-. + */ + + canvas { + display: inline-block; + } + + /** + * Add the correct display in IE. + */ + + template { + display: none; + } + + /* Hidden + ========================================================================== */ + + /** + * Add the correct display in IE 10-. + */ + + [hidden] { + display: none; + } \ No newline at end of file diff --git a/css/tool/color.css b/css/tool/color.css new file mode 100644 index 0000000..82bdfa8 --- /dev/null +++ b/css/tool/color.css @@ -0,0 +1,9 @@ +/* 存在项目中用到的很多颜色 */ + +:root { + --swiper-theme-color: var(--themeColor) !important; + --themeColor: #fb7299; + --whiteColor: #fff; + --textColor: #050505; + --tipsTextColor: #929292; +} \ No newline at end of file diff --git a/css/tool/public.css b/css/tool/public.css new file mode 100644 index 0000000..a491852 --- /dev/null +++ b/css/tool/public.css @@ -0,0 +1,165 @@ +/* 页面公用的css样式 */ +@import "./color.css"; +@import "./size.css"; +@import "./utils.css"; + +.header { + width: 100%; + left: 0; + top: 0; + background-color: var(--whiteColor); + height: .96rem; + z-index: 999; + padding-top: .08rem; + + .icon-fanhui { + font-size: .44rem !important; + } +} + + +.content { + margin-top: .96rem; + margin-bottom: 1rem; +} + + + +.footer { + width: 100%; + left: 0; + bottom: 0; + height: 1rem; + background: var(--whiteColor); + z-index: 999; + + .active { + a { + color: var(--themeColor); + } + } + + li { + a { + display: flex; + flex-direction: column; + align-items: center; + color: var(--blackColor); + + p { + font-size: 0.22rem; + margin-top: 0.1rem; + } + + i { + font-size: .38rem; + } + } + + } +} + +/* 这是 theme = 1 的默认布局(垂直)样式 + 1:可以横向滑动 + 2:一行两个 default-model +*/ +.recommend-model { + .title { + height: 45px; + font-size: var(--f19); + font-weight: bolder; + } + + .list { + margin-top: .3rem; + overflow-x: scroll; + + } + + li { + width: 3rem; + margin-right: .2rem; + + &:last-child { + margin-right: 0; + } + + a { + img { + width: 100%; + height: 225px; + margin-bottom: .18rem; + border-radius: .14rem; + object-fit: cover; + } + + .text { + font-size: var(--f17); + color: var(--textColor); + + margin-bottom: .12rem; + } + + .desc { + font-size: var(--f10); + color: var(--tipsTextColor); + + .time {} + + .view { + .icon-yanjing { + margin-right: .06rem; + } + + span {} + } + } + } + } +} + +.default-model { + margin-top: .8rem; + .list { + flex-wrap: wrap; + overflow-x: auto; + + li { + width: 3.32rem; + margin-bottom: .4rem; + &:nth-child(2n) { + margin-right: 0; + } + } + } +} + +/* 这是 theme = 2 的布局样式代码 + 图片和文字左右布局 +*/ +.item-theme-horizontally { + width: 100% !important; + + a { + display: flex; + + img { + width: 1.8rem !important; + height: 1.26rem !important; + flex-shrink: 0; + } + + .r { + width: calc(100% - 96px); + margin-left: .1rem; + } + + .text { + overflow: visible; + white-space: revert; + font-size: var(--f14) !important; + line-height: 1.4; + + } + } +} \ No newline at end of file diff --git a/css/tool/size.css b/css/tool/size.css new file mode 100644 index 0000000..9cbea91 --- /dev/null +++ b/css/tool/size.css @@ -0,0 +1,20 @@ +/* 网页的字体 */ +:root { + --f10: .2rem; + --f11: .22rem; + --f12: .24rem; + --f13: .26rem; + --f14: .28rem; + --f15: .3rem; + --f16: .32rem; + --f17: .34rem; + --f18: .36rem; + --f19: .38rem; + --f20: .4rem; + --f21: .42rem; + --f22: .44rem; + --f23: .46rem; + --f24: .48rem; + --f25: .5rem; + --f26: .52rem; +} \ No newline at end of file diff --git a/css/tool/utils.css b/css/tool/utils.css new file mode 100644 index 0000000..257c7fd --- /dev/null +++ b/css/tool/utils.css @@ -0,0 +1,63 @@ +/* 公共的css方法 */ +.flex { + display: flex; +} + +.ais { + align-items: center; +} + +.jc { + justify-content: center; +} + +.js { + justify-content: space-between; +} + +.ja { + justify-content: space-around +} + +.wrap { + flex-wrap: wrap; +} + +.flex1 { + flex: 1 +} + +.column { + flex-direction: column; +} + +.fixed { + position: fixed; +} + +.relative { + position: relative; +} + +.absolute { + position: absolute; +} + + +.border-box { + box-sizing: border-box; +} + +.p15{ + padding: 0 var(--f15); +} + +.p25{ + padding: 0 var(--f25); +} + +.ellipsis { + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap; +} \ No newline at end of file diff --git a/js/config/index.js b/js/config/index.js new file mode 100644 index 0000000..6109f2e --- /dev/null +++ b/js/config/index.js @@ -0,0 +1,42 @@ +// var let +// 定义的新方式 let +let config = { + stage: "dev", // dev test prod + + // http://127.0.0.1:8090/app/user/UserInfo + + // 基地址 http://127.0.0.1:8090/app + // 短地址 /user/UserInfo + + // 基地址都被 ajax封装调用 + devUrl: 'https://pc.buyusdt.xyz/v1/api', + testUrl: 'http://192.168.31.101:3030/test/api', + prodUrl: 'http://abc.com/v1/api', + + // 帮助ajax判断应该用哪一个基地址 + checkUrl: function () { + switch (this.stage) { + case "dev": + return this.devUrl + break; + case "test": + return this.testUrl + break; + case "prod": + return this.prodUrl + break; + } + }, + + // 短地址 都被 serve 调用 + urlList: { + homeHot: '/home/hot', + homeList: '/home/list', + homeBanner: '/home/banner', + infoList: '/info/list', + tagList: '/tag/list', + tagRecommend: '/tag/recommend', + searchHot: '/search/hot', + searchKey: '/search/key', + } +} \ No newline at end of file diff --git a/js/http/index.js b/js/http/index.js new file mode 100644 index 0000000..a376205 --- /dev/null +++ b/js/http/index.js @@ -0,0 +1,57 @@ +class Ajax { + + xhr = new XMLHttpRequest() + + get(option) { + return new Promise((success, error) => { + var params = "" + for (const key in option.data) { + params += `&${key}=${option.data[key]}` + } + params = params.replace("&", "?") + + // option.url == /home/hot?id=1 + this.xhr.open("GET", `${config.checkUrl()}${option.url}${params}`) + + this.xhr.send() + this.stateChange(success, error) + }) + } + + post(option) { + return new Promise((success, error) => { + this.xhr.open("POST", option.url) + this.xhr.setRequestHeader("Content-Type", "application/json") + // post 参数在请求体(body)中发送 + this.xhr.send(JSON.stringify(option.data)) + this.stateChange(success, error) + }) + } + + stateChange(suc, err) { + this.xhr.onreadystatechange = () => { + if (this.xhr.readyState == 4) { + if (this.xhr.status == 200) { + let res = JSON.parse(this.xhr.response) + switch (res.status) { + case 200: + suc(res.data) + break; + + case 404: + alert(res.message) + err(this.xhr) + break; + + default: + break; + } + suc() + } else { + err(this.xhr) + } + } + } + } + +} \ No newline at end of file diff --git a/js/page/domestic.js b/js/page/domestic.js new file mode 100644 index 0000000..26914c4 --- /dev/null +++ b/js/page/domestic.js @@ -0,0 +1,7 @@ +class Domestic { + constructor() { + util.footer() + } +} + +new Domestic \ No newline at end of file diff --git a/js/page/hot.js b/js/page/hot.js new file mode 100644 index 0000000..f340051 --- /dev/null +++ b/js/page/hot.js @@ -0,0 +1,7 @@ +class Hot { + constructor() { + util.footer() + } +} + +new Hot \ No newline at end of file diff --git a/js/page/index.js b/js/page/index.js new file mode 100644 index 0000000..0c3a1b5 --- /dev/null +++ b/js/page/index.js @@ -0,0 +1,80 @@ +class Index { + constructor() { + util.header( + ` +
开启精彩搜索..
+