| @ -1,13 +1,17 @@ | |||
| <!doctype html> | |||
| <html lang="en"> | |||
| <head> | |||
| <meta charset="UTF-8" /> | |||
| <!-- <link rel="icon" type="image/svg+xml" /> --> | |||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | |||
| <title>montieri</title> | |||
| </head> | |||
| <body> | |||
| <div id="app"></div> | |||
| <script type="module" src="/src/main.ts"></script> | |||
| </body> | |||
| </html> | |||
| <head> | |||
| <meta charset="UTF-8" /> | |||
| <!-- <link rel="icon" type="image/svg+xml" /> --> | |||
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | |||
| <meta name="keywords" content="FFE, Building materials, Smart hotel, Energy Saving" /> | |||
| <title>MONTIERI - FFE, building materials and smart energy saving for hotel/residential/commercial</title> | |||
| </head> | |||
| <body> | |||
| <div id="app"></div> | |||
| <script type="module" src="/src/main.ts"></script> | |||
| </body> | |||
| </html> | |||
| @ -1,35 +1,55 @@ | |||
| <script setup lang="ts"> | |||
| import HeaderPage from './components/HeaderPage.vue'; | |||
| import FooterPage from './components/FooterPage.vue'; | |||
| import { useRoute } from 'vue-router' | |||
| import {computed, onMounted} from "vue"; | |||
| import WOW from "wow.js"; | |||
| import HeaderPage from './components/HeaderPage.vue'; | |||
| import FooterPage from './components/FooterPage.vue'; | |||
| import { useRoute } from 'vue-router' | |||
| import { computed, onMounted } from "vue"; | |||
| import WOW from "wow.js"; | |||
| const route = useRoute() | |||
| console.log(route) | |||
| const routerKey = computed(() => { | |||
| return route.path + Math.random() | |||
| }) | |||
| onMounted(()=>{ | |||
| let wow = new WOW({ | |||
| boxClass: "wow", | |||
| animateClass: "animated", | |||
| offset: 0, | |||
| mobile: true, | |||
| live: true, | |||
| scrollContainer: null, | |||
| resetAnimation: true, | |||
| }); | |||
| wow.init(); | |||
| }) | |||
| const route = useRoute() | |||
| const routerKey = computed(() => { | |||
| return route.path + Math.random() | |||
| }) | |||
| onMounted(() => { | |||
| let wow = new WOW({ | |||
| boxClass: "wow", | |||
| animateClass: "animated", | |||
| offset: 0, | |||
| mobile: true, | |||
| live: true, | |||
| scrollContainer: null, | |||
| resetAnimation: true, | |||
| }); | |||
| wow.init(); | |||
| }) | |||
| </script> | |||
| <template> | |||
| <HeaderPage></HeaderPage> | |||
| <router-view :key="routerKey"></router-view> | |||
| <FooterPage></FooterPage> | |||
| <div class="appview"> | |||
| <HeaderPage class="header"></HeaderPage> | |||
| <router-view :key="routerKey" class="view"></router-view> | |||
| <FooterPage class="footer"></FooterPage> | |||
| </div> | |||
| </template> | |||
| <style> | |||
| @import './assets/css/index.css'; | |||
| <style lang="less"> | |||
| @import './assets/css/index.css'; | |||
| </style> | |||
| <style lang="less"> | |||
| .appview{ | |||
| display: flex; | |||
| flex-direction: column; | |||
| height: 100vh; | |||
| .header{ | |||
| width: 100%; | |||
| } | |||
| .footer{ | |||
| width: 100%; | |||
| } | |||
| .view{ | |||
| flex: 1; | |||
| // overflow-y: auto; | |||
| } | |||
| } | |||
| </style> | |||
| @ -0,0 +1,539 @@ | |||
| /* Logo 字体 */ | |||
| @font-face { | |||
| font-family: "iconfont logo"; | |||
| src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834'); | |||
| src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'), | |||
| url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'), | |||
| url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'), | |||
| url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg'); | |||
| } | |||
| .logo { | |||
| font-family: "iconfont logo"; | |||
| font-size: 160px; | |||
| font-style: normal; | |||
| -webkit-font-smoothing: antialiased; | |||
| -moz-osx-font-smoothing: grayscale; | |||
| } | |||
| /* tabs */ | |||
| .nav-tabs { | |||
| position: relative; | |||
| } | |||
| .nav-tabs .nav-more { | |||
| position: absolute; | |||
| right: 0; | |||
| bottom: 0; | |||
| height: 42px; | |||
| line-height: 42px; | |||
| color: #666; | |||
| } | |||
| #tabs { | |||
| border-bottom: 1px solid #eee; | |||
| } | |||
| #tabs li { | |||
| cursor: pointer; | |||
| width: 100px; | |||
| height: 40px; | |||
| line-height: 40px; | |||
| text-align: center; | |||
| font-size: 16px; | |||
| border-bottom: 2px solid transparent; | |||
| position: relative; | |||
| z-index: 1; | |||
| margin-bottom: -1px; | |||
| color: #666; | |||
| } | |||
| #tabs .active { | |||
| border-bottom-color: #f00; | |||
| color: #222; | |||
| } | |||
| .tab-container .content { | |||
| display: none; | |||
| } | |||
| /* 页面布局 */ | |||
| .main { | |||
| padding: 30px 100px; | |||
| width: 960px; | |||
| margin: 0 auto; | |||
| } | |||
| .main .logo { | |||
| color: #333; | |||
| text-align: left; | |||
| margin-bottom: 30px; | |||
| line-height: 1; | |||
| height: 110px; | |||
| margin-top: -50px; | |||
| overflow: hidden; | |||
| *zoom: 1; | |||
| } | |||
| .main .logo a { | |||
| font-size: 160px; | |||
| color: #333; | |||
| } | |||
| .helps { | |||
| margin-top: 40px; | |||
| } | |||
| .helps pre { | |||
| padding: 20px; | |||
| margin: 10px 0; | |||
| border: solid 1px #e7e1cd; | |||
| background-color: #fffdef; | |||
| overflow: auto; | |||
| } | |||
| .icon_lists { | |||
| width: 100% !important; | |||
| overflow: hidden; | |||
| *zoom: 1; | |||
| } | |||
| .icon_lists li { | |||
| width: 100px; | |||
| margin-bottom: 10px; | |||
| margin-right: 20px; | |||
| text-align: center; | |||
| list-style: none !important; | |||
| cursor: default; | |||
| } | |||
| .icon_lists li .code-name { | |||
| line-height: 1.2; | |||
| } | |||
| .icon_lists .icon { | |||
| display: block; | |||
| height: 100px; | |||
| line-height: 100px; | |||
| font-size: 42px; | |||
| margin: 10px auto; | |||
| color: #333; | |||
| -webkit-transition: font-size 0.25s linear, width 0.25s linear; | |||
| -moz-transition: font-size 0.25s linear, width 0.25s linear; | |||
| transition: font-size 0.25s linear, width 0.25s linear; | |||
| } | |||
| .icon_lists .icon:hover { | |||
| font-size: 100px; | |||
| } | |||
| .icon_lists .svg-icon { | |||
| /* 通过设置 font-size 来改变图标大小 */ | |||
| width: 1em; | |||
| /* 图标和文字相邻时,垂直对齐 */ | |||
| vertical-align: -0.15em; | |||
| /* 通过设置 color 来改变 SVG 的颜色/fill */ | |||
| fill: currentColor; | |||
| /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示 | |||
| normalize.css 中也包含这行 */ | |||
| overflow: hidden; | |||
| } | |||
| .icon_lists li .name, | |||
| .icon_lists li .code-name { | |||
| color: #666; | |||
| } | |||
| /* markdown 样式 */ | |||
| .markdown { | |||
| color: #666; | |||
| font-size: 14px; | |||
| line-height: 1.8; | |||
| } | |||
| .highlight { | |||
| line-height: 1.5; | |||
| } | |||
| .markdown img { | |||
| vertical-align: middle; | |||
| max-width: 100%; | |||
| } | |||
| .markdown h1 { | |||
| color: #404040; | |||
| font-weight: 500; | |||
| line-height: 40px; | |||
| margin-bottom: 24px; | |||
| } | |||
| .markdown h2, | |||
| .markdown h3, | |||
| .markdown h4, | |||
| .markdown h5, | |||
| .markdown h6 { | |||
| color: #404040; | |||
| margin: 1.6em 0 0.6em 0; | |||
| font-weight: 500; | |||
| clear: both; | |||
| } | |||
| .markdown h1 { | |||
| font-size: 28px; | |||
| } | |||
| .markdown h2 { | |||
| font-size: 22px; | |||
| } | |||
| .markdown h3 { | |||
| font-size: 16px; | |||
| } | |||
| .markdown h4 { | |||
| font-size: 14px; | |||
| } | |||
| .markdown h5 { | |||
| font-size: 12px; | |||
| } | |||
| .markdown h6 { | |||
| font-size: 12px; | |||
| } | |||
| .markdown hr { | |||
| height: 1px; | |||
| border: 0; | |||
| background: #e9e9e9; | |||
| margin: 16px 0; | |||
| clear: both; | |||
| } | |||
| .markdown p { | |||
| margin: 1em 0; | |||
| } | |||
| .markdown>p, | |||
| .markdown>blockquote, | |||
| .markdown>.highlight, | |||
| .markdown>ol, | |||
| .markdown>ul { | |||
| width: 80%; | |||
| } | |||
| .markdown ul>li { | |||
| list-style: circle; | |||
| } | |||
| .markdown>ul li, | |||
| .markdown blockquote ul>li { | |||
| margin-left: 20px; | |||
| padding-left: 4px; | |||
| } | |||
| .markdown>ul li p, | |||
| .markdown>ol li p { | |||
| margin: 0.6em 0; | |||
| } | |||
| .markdown ol>li { | |||
| list-style: decimal; | |||
| } | |||
| .markdown>ol li, | |||
| .markdown blockquote ol>li { | |||
| margin-left: 20px; | |||
| padding-left: 4px; | |||
| } | |||
| .markdown code { | |||
| margin: 0 3px; | |||
| padding: 0 5px; | |||
| background: #eee; | |||
| border-radius: 3px; | |||
| } | |||
| .markdown strong, | |||
| .markdown b { | |||
| font-weight: 600; | |||
| } | |||
| .markdown>table { | |||
| border-collapse: collapse; | |||
| border-spacing: 0px; | |||
| empty-cells: show; | |||
| border: 1px solid #e9e9e9; | |||
| width: 95%; | |||
| margin-bottom: 24px; | |||
| } | |||
| .markdown>table th { | |||
| white-space: nowrap; | |||
| color: #333; | |||
| font-weight: 600; | |||
| } | |||
| .markdown>table th, | |||
| .markdown>table td { | |||
| border: 1px solid #e9e9e9; | |||
| padding: 8px 16px; | |||
| text-align: left; | |||
| } | |||
| .markdown>table th { | |||
| background: #F7F7F7; | |||
| } | |||
| .markdown blockquote { | |||
| font-size: 90%; | |||
| color: #999; | |||
| border-left: 4px solid #e9e9e9; | |||
| padding-left: 0.8em; | |||
| margin: 1em 0; | |||
| } | |||
| .markdown blockquote p { | |||
| margin: 0; | |||
| } | |||
| .markdown .anchor { | |||
| opacity: 0; | |||
| transition: opacity 0.3s ease; | |||
| margin-left: 8px; | |||
| } | |||
| .markdown .waiting { | |||
| color: #ccc; | |||
| } | |||
| .markdown h1:hover .anchor, | |||
| .markdown h2:hover .anchor, | |||
| .markdown h3:hover .anchor, | |||
| .markdown h4:hover .anchor, | |||
| .markdown h5:hover .anchor, | |||
| .markdown h6:hover .anchor { | |||
| opacity: 1; | |||
| display: inline-block; | |||
| } | |||
| .markdown>br, | |||
| .markdown>p>br { | |||
| clear: both; | |||
| } | |||
| .hljs { | |||
| display: block; | |||
| background: white; | |||
| padding: 0.5em; | |||
| color: #333333; | |||
| overflow-x: auto; | |||
| } | |||
| .hljs-comment, | |||
| .hljs-meta { | |||
| color: #969896; | |||
| } | |||
| .hljs-string, | |||
| .hljs-variable, | |||
| .hljs-template-variable, | |||
| .hljs-strong, | |||
| .hljs-emphasis, | |||
| .hljs-quote { | |||
| color: #df5000; | |||
| } | |||
| .hljs-keyword, | |||
| .hljs-selector-tag, | |||
| .hljs-type { | |||
| color: #a71d5d; | |||
| } | |||
| .hljs-literal, | |||
| .hljs-symbol, | |||
| .hljs-bullet, | |||
| .hljs-attribute { | |||
| color: #0086b3; | |||
| } | |||
| .hljs-section, | |||
| .hljs-name { | |||
| color: #63a35c; | |||
| } | |||
| .hljs-tag { | |||
| color: #333333; | |||
| } | |||
| .hljs-title, | |||
| .hljs-attr, | |||
| .hljs-selector-id, | |||
| .hljs-selector-class, | |||
| .hljs-selector-attr, | |||
| .hljs-selector-pseudo { | |||
| color: #795da3; | |||
| } | |||
| .hljs-addition { | |||
| color: #55a532; | |||
| background-color: #eaffea; | |||
| } | |||
| .hljs-deletion { | |||
| color: #bd2c00; | |||
| background-color: #ffecec; | |||
| } | |||
| .hljs-link { | |||
| text-decoration: underline; | |||
| } | |||
| /* 代码高亮 */ | |||
| /* PrismJS 1.15.0 | |||
| https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */ | |||
| /** | |||
| * prism.js default theme for JavaScript, CSS and HTML | |||
| * Based on dabblet (http://dabblet.com) | |||
| * @author Lea Verou | |||
| */ | |||
| code[class*="language-"], | |||
| pre[class*="language-"] { | |||
| color: black; | |||
| background: none; | |||
| text-shadow: 0 1px white; | |||
| font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; | |||
| text-align: left; | |||
| white-space: pre; | |||
| word-spacing: normal; | |||
| word-break: normal; | |||
| word-wrap: normal; | |||
| line-height: 1.5; | |||
| -moz-tab-size: 4; | |||
| -o-tab-size: 4; | |||
| tab-size: 4; | |||
| -webkit-hyphens: none; | |||
| -moz-hyphens: none; | |||
| -ms-hyphens: none; | |||
| hyphens: none; | |||
| } | |||
| pre[class*="language-"]::-moz-selection, | |||
| pre[class*="language-"] ::-moz-selection, | |||
| code[class*="language-"]::-moz-selection, | |||
| code[class*="language-"] ::-moz-selection { | |||
| text-shadow: none; | |||
| background: #b3d4fc; | |||
| } | |||
| pre[class*="language-"]::selection, | |||
| pre[class*="language-"] ::selection, | |||
| code[class*="language-"]::selection, | |||
| code[class*="language-"] ::selection { | |||
| text-shadow: none; | |||
| background: #b3d4fc; | |||
| } | |||
| @media print { | |||
| code[class*="language-"], | |||
| pre[class*="language-"] { | |||
| text-shadow: none; | |||
| } | |||
| } | |||
| /* Code blocks */ | |||
| pre[class*="language-"] { | |||
| padding: 1em; | |||
| margin: .5em 0; | |||
| overflow: auto; | |||
| } | |||
| :not(pre)>code[class*="language-"], | |||
| pre[class*="language-"] { | |||
| background: #f5f2f0; | |||
| } | |||
| /* Inline code */ | |||
| :not(pre)>code[class*="language-"] { | |||
| padding: .1em; | |||
| border-radius: .3em; | |||
| white-space: normal; | |||
| } | |||
| .token.comment, | |||
| .token.prolog, | |||
| .token.doctype, | |||
| .token.cdata { | |||
| color: slategray; | |||
| } | |||
| .token.punctuation { | |||
| color: #999; | |||
| } | |||
| .namespace { | |||
| opacity: .7; | |||
| } | |||
| .token.property, | |||
| .token.tag, | |||
| .token.boolean, | |||
| .token.number, | |||
| .token.constant, | |||
| .token.symbol, | |||
| .token.deleted { | |||
| color: #905; | |||
| } | |||
| .token.selector, | |||
| .token.attr-name, | |||
| .token.string, | |||
| .token.char, | |||
| .token.builtin, | |||
| .token.inserted { | |||
| color: #690; | |||
| } | |||
| .token.operator, | |||
| .token.entity, | |||
| .token.url, | |||
| .language-css .token.string, | |||
| .style .token.string { | |||
| color: #9a6e3a; | |||
| background: hsla(0, 0%, 100%, .5); | |||
| } | |||
| .token.atrule, | |||
| .token.attr-value, | |||
| .token.keyword { | |||
| color: #07a; | |||
| } | |||
| .token.function, | |||
| .token.class-name { | |||
| color: #DD4A68; | |||
| } | |||
| .token.regex, | |||
| .token.important, | |||
| .token.variable { | |||
| color: #e90; | |||
| } | |||
| .token.important, | |||
| .token.bold { | |||
| font-weight: bold; | |||
| } | |||
| .token.italic { | |||
| font-style: italic; | |||
| } | |||
| .token.entity { | |||
| cursor: help; | |||
| } | |||
| @ -0,0 +1,326 @@ | |||
| <!DOCTYPE html> | |||
| <html> | |||
| <head> | |||
| <meta charset="utf-8"/> | |||
| <title>iconfont Demo</title> | |||
| <link rel="shortcut icon" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg" type="image/x-icon"/> | |||
| <link rel="icon" type="image/svg+xml" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg"/> | |||
| <link rel="stylesheet" href="https://g.alicdn.com/thx/cube/1.3.2/cube.min.css"> | |||
| <link rel="stylesheet" href="demo.css"> | |||
| <link rel="stylesheet" href="iconfont.css"> | |||
| <script src="iconfont.js"></script> | |||
| <!-- jQuery --> | |||
| <script src="https://a1.alicdn.com/oss/uploads/2018/12/26/7bfddb60-08e8-11e9-9b04-53e73bb6408b.js"></script> | |||
| <!-- 代码高亮 --> | |||
| <script src="https://a1.alicdn.com/oss/uploads/2018/12/26/a3f714d0-08e6-11e9-8a15-ebf944d7534c.js"></script> | |||
| <style> | |||
| .main .logo { | |||
| margin-top: 0; | |||
| height: auto; | |||
| } | |||
| .main .logo a { | |||
| display: flex; | |||
| align-items: center; | |||
| } | |||
| .main .logo .sub-title { | |||
| margin-left: 0.5em; | |||
| font-size: 22px; | |||
| color: #fff; | |||
| background: linear-gradient(-45deg, #3967FF, #B500FE); | |||
| -webkit-background-clip: text; | |||
| -webkit-text-fill-color: transparent; | |||
| } | |||
| </style> | |||
| </head> | |||
| <body> | |||
| <div class="main"> | |||
| <h1 class="logo"><a href="https://www.iconfont.cn/" title="iconfont 首页" target="_blank"> | |||
| <img width="200" src="https://img.alicdn.com/imgextra/i3/O1CN01Mn65HV1FfSEzR6DKv_!!6000000000514-55-tps-228-59.svg"> | |||
| </a></h1> | |||
| <div class="nav-tabs"> | |||
| <ul id="tabs" class="dib-box"> | |||
| <li class="dib active"><span>Unicode</span></li> | |||
| <li class="dib"><span>Font class</span></li> | |||
| <li class="dib"><span>Symbol</span></li> | |||
| </ul> | |||
| <a href="https://www.iconfont.cn/manage/index?manage_type=myprojects&projectId=4216264" target="_blank" class="nav-more">查看项目</a> | |||
| </div> | |||
| <div class="tab-container"> | |||
| <div class="content unicode" style="display: block;"> | |||
| <ul class="icon_lists dib-box"> | |||
| <li class="dib"> | |||
| <span class="icon iconfont"></span> | |||
| <div class="name">我的产品</div> | |||
| <div class="code-name">&#xe633;</div> | |||
| </li> | |||
| <li class="dib"> | |||
| <span class="icon iconfont"></span> | |||
| <div class="name">首页</div> | |||
| <div class="code-name">&#xe64f;</div> | |||
| </li> | |||
| <li class="dib"> | |||
| <span class="icon iconfont"></span> | |||
| <div class="name">24gl-newspaper</div> | |||
| <div class="code-name">&#xe8ae;</div> | |||
| </li> | |||
| <li class="dib"> | |||
| <span class="icon iconfont"></span> | |||
| <div class="name">联系我们</div> | |||
| <div class="code-name">&#xe612;</div> | |||
| </li> | |||
| <li class="dib"> | |||
| <span class="icon iconfont"></span> | |||
| <div class="name">工程</div> | |||
| <div class="code-name">&#xe6a4;</div> | |||
| </li> | |||
| <li class="dib"> | |||
| <span class="icon iconfont"></span> | |||
| <div class="name">专属服务</div> | |||
| <div class="code-name">&#xe884;</div> | |||
| </li> | |||
| </ul> | |||
| <div class="article markdown"> | |||
| <h2 id="unicode-">Unicode 引用</h2> | |||
| <hr> | |||
| <p>Unicode 是字体在网页端最原始的应用方式,特点是:</p> | |||
| <ul> | |||
| <li>支持按字体的方式去动态调整图标大小,颜色等等。</li> | |||
| <li>默认情况下不支持多色,直接添加多色图标会自动去色。</li> | |||
| </ul> | |||
| <blockquote> | |||
| <p>注意:新版 iconfont 支持两种方式引用多色图标:SVG symbol 引用方式和彩色字体图标模式。(使用彩色字体图标需要在「编辑项目」中开启「彩色」选项后并重新生成。)</p> | |||
| </blockquote> | |||
| <p>Unicode 使用步骤如下:</p> | |||
| <h3 id="-font-face">第一步:拷贝项目下面生成的 <code>@font-face</code></h3> | |||
| <pre><code class="language-css" | |||
| >@font-face { | |||
| font-family: 'iconfont'; | |||
| src: url('iconfont.woff2?t=1692348351208') format('woff2'), | |||
| url('iconfont.woff?t=1692348351208') format('woff'), | |||
| url('iconfont.ttf?t=1692348351208') format('truetype'); | |||
| } | |||
| </code></pre> | |||
| <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3> | |||
| <pre><code class="language-css" | |||
| >.iconfont { | |||
| font-family: "iconfont" !important; | |||
| font-size: 16px; | |||
| font-style: normal; | |||
| -webkit-font-smoothing: antialiased; | |||
| -moz-osx-font-smoothing: grayscale; | |||
| } | |||
| </code></pre> | |||
| <h3 id="-">第三步:挑选相应图标并获取字体编码,应用于页面</h3> | |||
| <pre> | |||
| <code class="language-html" | |||
| ><span class="iconfont">&#x33;</span> | |||
| </code></pre> | |||
| <blockquote> | |||
| <p>"iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。</p> | |||
| </blockquote> | |||
| </div> | |||
| </div> | |||
| <div class="content font-class"> | |||
| <ul class="icon_lists dib-box"> | |||
| <li class="dib"> | |||
| <span class="icon iconfont icon-wodechanpin"></span> | |||
| <div class="name"> | |||
| 我的产品 | |||
| </div> | |||
| <div class="code-name">.icon-wodechanpin | |||
| </div> | |||
| </li> | |||
| <li class="dib"> | |||
| <span class="icon iconfont icon-shouye"></span> | |||
| <div class="name"> | |||
| 首页 | |||
| </div> | |||
| <div class="code-name">.icon-shouye | |||
| </div> | |||
| </li> | |||
| <li class="dib"> | |||
| <span class="icon iconfont icon-24gl-newspaper"></span> | |||
| <div class="name"> | |||
| 24gl-newspaper | |||
| </div> | |||
| <div class="code-name">.icon-24gl-newspaper | |||
| </div> | |||
| </li> | |||
| <li class="dib"> | |||
| <span class="icon iconfont icon-lianxiwomen"></span> | |||
| <div class="name"> | |||
| 联系我们 | |||
| </div> | |||
| <div class="code-name">.icon-lianxiwomen | |||
| </div> | |||
| </li> | |||
| <li class="dib"> | |||
| <span class="icon iconfont icon-gongcheng"></span> | |||
| <div class="name"> | |||
| 工程 | |||
| </div> | |||
| <div class="code-name">.icon-gongcheng | |||
| </div> | |||
| </li> | |||
| <li class="dib"> | |||
| <span class="icon iconfont icon-zhuanshufuwu"></span> | |||
| <div class="name"> | |||
| 专属服务 | |||
| </div> | |||
| <div class="code-name">.icon-zhuanshufuwu | |||
| </div> | |||
| </li> | |||
| </ul> | |||
| <div class="article markdown"> | |||
| <h2 id="font-class-">font-class 引用</h2> | |||
| <hr> | |||
| <p>font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。</p> | |||
| <p>与 Unicode 使用方式相比,具有如下特点:</p> | |||
| <ul> | |||
| <li>相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。</li> | |||
| <li>因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。</li> | |||
| </ul> | |||
| <p>使用步骤如下:</p> | |||
| <h3 id="-fontclass-">第一步:引入项目下面生成的 fontclass 代码:</h3> | |||
| <pre><code class="language-html"><link rel="stylesheet" href="./iconfont.css"> | |||
| </code></pre> | |||
| <h3 id="-">第二步:挑选相应图标并获取类名,应用于页面:</h3> | |||
| <pre><code class="language-html"><span class="iconfont icon-xxx"></span> | |||
| </code></pre> | |||
| <blockquote> | |||
| <p>" | |||
| iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。</p> | |||
| </blockquote> | |||
| </div> | |||
| </div> | |||
| <div class="content symbol"> | |||
| <ul class="icon_lists dib-box"> | |||
| <li class="dib"> | |||
| <svg class="icon svg-icon" aria-hidden="true"> | |||
| <use xlink:href="#icon-wodechanpin"></use> | |||
| </svg> | |||
| <div class="name">我的产品</div> | |||
| <div class="code-name">#icon-wodechanpin</div> | |||
| </li> | |||
| <li class="dib"> | |||
| <svg class="icon svg-icon" aria-hidden="true"> | |||
| <use xlink:href="#icon-shouye"></use> | |||
| </svg> | |||
| <div class="name">首页</div> | |||
| <div class="code-name">#icon-shouye</div> | |||
| </li> | |||
| <li class="dib"> | |||
| <svg class="icon svg-icon" aria-hidden="true"> | |||
| <use xlink:href="#icon-24gl-newspaper"></use> | |||
| </svg> | |||
| <div class="name">24gl-newspaper</div> | |||
| <div class="code-name">#icon-24gl-newspaper</div> | |||
| </li> | |||
| <li class="dib"> | |||
| <svg class="icon svg-icon" aria-hidden="true"> | |||
| <use xlink:href="#icon-lianxiwomen"></use> | |||
| </svg> | |||
| <div class="name">联系我们</div> | |||
| <div class="code-name">#icon-lianxiwomen</div> | |||
| </li> | |||
| <li class="dib"> | |||
| <svg class="icon svg-icon" aria-hidden="true"> | |||
| <use xlink:href="#icon-gongcheng"></use> | |||
| </svg> | |||
| <div class="name">工程</div> | |||
| <div class="code-name">#icon-gongcheng</div> | |||
| </li> | |||
| <li class="dib"> | |||
| <svg class="icon svg-icon" aria-hidden="true"> | |||
| <use xlink:href="#icon-zhuanshufuwu"></use> | |||
| </svg> | |||
| <div class="name">专属服务</div> | |||
| <div class="code-name">#icon-zhuanshufuwu</div> | |||
| </li> | |||
| </ul> | |||
| <div class="article markdown"> | |||
| <h2 id="symbol-">Symbol 引用</h2> | |||
| <hr> | |||
| <p>这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇<a href="">文章</a> | |||
| 这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:</p> | |||
| <ul> | |||
| <li>支持多色图标了,不再受单色限制。</li> | |||
| <li>通过一些技巧,支持像字体那样,通过 <code>font-size</code>, <code>color</code> 来调整样式。</li> | |||
| <li>兼容性较差,支持 IE9+,及现代浏览器。</li> | |||
| <li>浏览器渲染 SVG 的性能一般,还不如 png。</li> | |||
| </ul> | |||
| <p>使用步骤如下:</p> | |||
| <h3 id="-symbol-">第一步:引入项目下面生成的 symbol 代码:</h3> | |||
| <pre><code class="language-html"><script src="./iconfont.js"></script> | |||
| </code></pre> | |||
| <h3 id="-css-">第二步:加入通用 CSS 代码(引入一次就行):</h3> | |||
| <pre><code class="language-html"><style> | |||
| .icon { | |||
| width: 1em; | |||
| height: 1em; | |||
| vertical-align: -0.15em; | |||
| fill: currentColor; | |||
| overflow: hidden; | |||
| } | |||
| </style> | |||
| </code></pre> | |||
| <h3 id="-">第三步:挑选相应图标并获取类名,应用于页面:</h3> | |||
| <pre><code class="language-html"><svg class="icon" aria-hidden="true"> | |||
| <use xlink:href="#icon-xxx"></use> | |||
| </svg> | |||
| </code></pre> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <script> | |||
| $(document).ready(function () { | |||
| $('.tab-container .content:first').show() | |||
| $('#tabs li').click(function (e) { | |||
| var tabContent = $('.tab-container .content') | |||
| var index = $(this).index() | |||
| if ($(this).hasClass('active')) { | |||
| return | |||
| } else { | |||
| $('#tabs li').removeClass('active') | |||
| $(this).addClass('active') | |||
| tabContent.hide().eq(index).fadeIn() | |||
| } | |||
| }) | |||
| }) | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @ -0,0 +1,39 @@ | |||
| @font-face { | |||
| font-family: "iconfont"; /* Project id 4216264 */ | |||
| src: url('iconfont.woff2?t=1692348351208') format('woff2'), | |||
| url('iconfont.woff?t=1692348351208') format('woff'), | |||
| url('iconfont.ttf?t=1692348351208') format('truetype'); | |||
| } | |||
| .iconfont { | |||
| font-family: "iconfont" !important; | |||
| font-size: 16px; | |||
| font-style: normal; | |||
| -webkit-font-smoothing: antialiased; | |||
| -moz-osx-font-smoothing: grayscale; | |||
| } | |||
| .icon-wodechanpin:before { | |||
| content: "\e633"; | |||
| } | |||
| .icon-shouye:before { | |||
| content: "\e64f"; | |||
| } | |||
| .icon-24gl-newspaper:before { | |||
| content: "\e8ae"; | |||
| } | |||
| .icon-lianxiwomen:before { | |||
| content: "\e612"; | |||
| } | |||
| .icon-gongcheng:before { | |||
| content: "\e6a4"; | |||
| } | |||
| .icon-zhuanshufuwu:before { | |||
| content: "\e884"; | |||
| } | |||
| @ -0,0 +1,51 @@ | |||
| { | |||
| "id": "4216264", | |||
| "name": "web", | |||
| "font_family": "iconfont", | |||
| "css_prefix_text": "icon-", | |||
| "description": "", | |||
| "glyphs": [ | |||
| { | |||
| "icon_id": "1831570", | |||
| "name": "我的产品", | |||
| "font_class": "wodechanpin", | |||
| "unicode": "e633", | |||
| "unicode_decimal": 58931 | |||
| }, | |||
| { | |||
| "icon_id": "629343", | |||
| "name": "首页", | |||
| "font_class": "shouye", | |||
| "unicode": "e64f", | |||
| "unicode_decimal": 58959 | |||
| }, | |||
| { | |||
| "icon_id": "7548884", | |||
| "name": "24gl-newspaper", | |||
| "font_class": "24gl-newspaper", | |||
| "unicode": "e8ae", | |||
| "unicode_decimal": 59566 | |||
| }, | |||
| { | |||
| "icon_id": "7817221", | |||
| "name": "联系我们", | |||
| "font_class": "lianxiwomen", | |||
| "unicode": "e612", | |||
| "unicode_decimal": 58898 | |||
| }, | |||
| { | |||
| "icon_id": "10032377", | |||
| "name": "工程", | |||
| "font_class": "gongcheng", | |||
| "unicode": "e6a4", | |||
| "unicode_decimal": 59044 | |||
| }, | |||
| { | |||
| "icon_id": "34453380", | |||
| "name": "专属服务", | |||
| "font_class": "zhuanshufuwu", | |||
| "unicode": "e884", | |||
| "unicode_decimal": 59524 | |||
| } | |||
| ] | |||
| } | |||
| @ -0,0 +1,36 @@ | |||
| <template> | |||
| <div class="newsmessage"> | |||
| <div v-if="router.currentRoute.value.params.name == 'all'"> | |||
| <Title :value="title"></Title> | |||
| <Service :index="2"/> | |||
| </div> | |||
| <div v-else> | |||
| 新闻资讯 | |||
| </div> | |||
| </div> | |||
| </template> | |||
| <script setup lang="ts"> | |||
| import router from '../router'; | |||
| import Service from './Service.vue'; | |||
| import Title from '../components/Title.vue'; | |||
| import { ref } from 'vue' | |||
| let title = ref<any>({ | |||
| title: "News", | |||
| desc: "" | |||
| }) | |||
| </script> | |||
| <style scoped lang="less"> | |||
| .newsmessage{ | |||
| // margin-top: 1vw; | |||
| } | |||
| @media screen and (max-width: 960px) { | |||
| .newsmessage{ | |||
| margin-top: 10vw; | |||
| } | |||
| } | |||
| </style> | |||
| @ -0,0 +1,85 @@ | |||
| <template> | |||
| <div class="productcenter"> | |||
| <div class="box" v-if="!show"> | |||
| {{ router.currentRoute.value.params.name }} | |||
| </div> | |||
| <div class="box" v-else> | |||
| <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick"> | |||
| <el-tab-pane :label="item.title" :name="item.position" v-for="item,index in productList" :key="index"> | |||
| <div> | |||
| <h2>{{ item.title }}</h2> | |||
| </div> | |||
| </el-tab-pane> | |||
| </el-tabs> | |||
| </div> | |||
| </div> | |||
| </template> | |||
| <script setup lang="ts"> | |||
| import router from '../router'; | |||
| import { ref } from 'vue' | |||
| import type { TabsPaneContext } from 'element-plus/lib'; | |||
| let show = ref<any>(false) | |||
| let productList = Array<any>([]) | |||
| let activeName = ref<any>('Floor') | |||
| const handleClick = (tab: TabsPaneContext, event: Event) => { | |||
| console.log(tab, event) | |||
| } | |||
| if (router.currentRoute.value.params.name == 'Building Materials') { | |||
| show.value = true | |||
| productList = [ | |||
| { title: 'Floor', position: 'Floor' }, | |||
| { title: 'Wall', position: 'Wall' }, | |||
| { title: 'roof', position: 'roof' } | |||
| ] | |||
| activeName.value = productList[0].title | |||
| } else if(router.currentRoute.value.params.name == 'Sanitary Ware') { | |||
| show.value = true | |||
| productList = [ | |||
| { title: 'Mirror', position: 'Mirror' }, | |||
| { title: 'Toilet', position: 'Toilet' }, | |||
| { title: 'Bathtub ', position: 'Bathtub ' }, | |||
| { title: 'Jacuzzi', position: 'Jacuzzi' }, | |||
| { title: 'Faucet', position: 'Faucet' }, | |||
| { title: 'Sink', position: 'Sink' }, | |||
| { title: 'Accessories', position: 'Accessories' }, | |||
| { title: 'Shower Glass', position: 'ShowerGlass' }, | |||
| { title: 'Bathroom', position: 'Bathroom' }, | |||
| { title: 'Shower system', position: 'Showersystem' }, | |||
| ] | |||
| activeName.value = productList[0].title | |||
| }else{ | |||
| show.value = false | |||
| } | |||
| </script> | |||
| <style scoped lang="less"> | |||
| .productcenter { | |||
| margin-top: 2vw; | |||
| .box { | |||
| width: 90%; | |||
| margin: 0 auto; | |||
| } | |||
| } | |||
| @media screen and (max-width: 960px) { | |||
| .productcenter { | |||
| margin-top: 14vw; | |||
| } | |||
| } | |||
| </style> | |||
| <style> | |||
| .demo-tabs > .el-tabs__content { | |||
| padding: 10px; | |||
| color: #6b778c; | |||
| font-size: 32px; | |||
| font-weight: 600; | |||
| } | |||
| </style> | |||