264 lines
6.9 KiB
Vue
264 lines
6.9 KiB
Vue
|
<template>
|
|||
|
<div class="part2-container">
|
|||
|
<div
|
|||
|
class="major aos-init aos-animate"
|
|||
|
data-aos="fade-up"
|
|||
|
data-aos-delay="50"
|
|||
|
data-aos-anchor-placement="top-bottom"
|
|||
|
>
|
|||
|
— 推荐文章 —
|
|||
|
</div>
|
|||
|
<el-carousel
|
|||
|
height="220px"
|
|||
|
:loop="true"
|
|||
|
:interval="2000"
|
|||
|
:style="{ 'z-index': 0 }"
|
|||
|
:type="fits ? 'card' : ''"
|
|||
|
>
|
|||
|
<el-carousel-item v-for="article in acticleSet" :key="article.pageInfo.key">
|
|||
|
<el-row>
|
|||
|
<el-col :xs="24" :sm="8">
|
|||
|
<div
|
|||
|
class="photo-container"
|
|||
|
@click="toDetail(article.pageInfo.path)"
|
|||
|
>
|
|||
|
<img :src="article.url" class="photo" />
|
|||
|
</div>
|
|||
|
</el-col>
|
|||
|
<el-col :xs="24" :sm="16">
|
|||
|
<div
|
|||
|
style="padding: 14px" class="abstract-container"
|
|||
|
@click="toDetail(article.pageInfo.path)"
|
|||
|
>
|
|||
|
<span class="abstract-title">{{article.title}}</span>
|
|||
|
<p class="absstract-body">
|
|||
|
{{article.content}}
|
|||
|
</p>
|
|||
|
<PageInfo :pageInfo="article.pageInfo" currentTag=""> </PageInfo>
|
|||
|
</div>
|
|||
|
</el-col>
|
|||
|
</el-row>
|
|||
|
</el-carousel-item>
|
|||
|
<!-- <el-carousel-item>
|
|||
|
<el-row>
|
|||
|
<el-col :xs="24" :sm="8">
|
|||
|
<div
|
|||
|
class="photo-container"
|
|||
|
@click="toDetail(olPageInfo.path)"
|
|||
|
>
|
|||
|
<img :src="olXmindUrl" class="photo" />
|
|||
|
</div>
|
|||
|
</el-col>
|
|||
|
<el-col :xs="24" :sm="16">
|
|||
|
<div
|
|||
|
style="padding: 14px" class="abstract-container"
|
|||
|
@click="toDetail(olPageInfo.path)"
|
|||
|
>
|
|||
|
<span class="abstract-title">OpenLayers 小记</span>
|
|||
|
<p class="absstract-body">
|
|||
|
OpenLayers 是的一个模块化、高性能且功能丰富的WebGIS客户端的JS库,用于显示地图和空间数据以及交互操作。
|
|||
|
</p>
|
|||
|
<PageInfo :pageInfo="olPageInfo" currentTag=""> </PageInfo>
|
|||
|
</div>
|
|||
|
</el-col>
|
|||
|
</el-row>
|
|||
|
</el-carousel-item> -->
|
|||
|
|
|||
|
</el-carousel>
|
|||
|
</div>
|
|||
|
</template>
|
|||
|
|
|||
|
<script>
|
|||
|
import PageInfo from "../PageInfo";
|
|||
|
export default {
|
|||
|
components: { PageInfo },
|
|||
|
data() {
|
|||
|
return {
|
|||
|
fits: true,
|
|||
|
acticleSet:[
|
|||
|
{
|
|||
|
url: require("../../../public/images/geoserver2023.png"),
|
|||
|
title: 'GeoServer与OGC小记',
|
|||
|
content: 'GeoServer是用Java编写的开放源代码的地图服务器,允许用户共享和编辑地理空间数据。GeoServer 是参考开放地理空间联盟(OGC)的相关标准实现的。',
|
|||
|
pageInfo: {
|
|||
|
frontmatter: {
|
|||
|
author: "ac",
|
|||
|
categories: ["GIS"],
|
|||
|
date: "2020-03-25T00:00:00.000Z",
|
|||
|
tags: ["GeoServer"],
|
|||
|
title: "GeoServer小记",
|
|||
|
},
|
|||
|
key: "v-25952a80",
|
|||
|
path: "/article/gis/geoserver/geoserverxmind.html",
|
|||
|
regularPath: "/article/gis/geoserver/geoserverxmind.html",
|
|||
|
relativePath: "article/gis/geoserver/geoserverxmind.md",
|
|||
|
title: "GeoServer小记",
|
|||
|
}
|
|||
|
},{
|
|||
|
url: require("../../../public/images/openlayers.png"),
|
|||
|
title: 'OpenLayers 小记',
|
|||
|
content: 'OpenLayers 是的一个模块化、高性能且功能丰富的WebGIS客户端的JS库,用于显示地图和空间数据以及交互操作。',
|
|||
|
pageInfo: {
|
|||
|
frontmatter: {
|
|||
|
author: "ac",
|
|||
|
categories: ["GIS"],
|
|||
|
date: "2020-12-02T00:00:00.000Z",
|
|||
|
tags: ["OpenLayers"],
|
|||
|
title: "OpenLayers 小记",
|
|||
|
},
|
|||
|
key: "v-25952a810",
|
|||
|
path: "/article/gis/openlayers/olxmindnew.html",
|
|||
|
regularPath: "/article/gis/openlayers/olxmindnew.html",
|
|||
|
relativePath: "article/gis/openlayers/olxmindnew.md",
|
|||
|
title: "OpenLayers 小记",
|
|||
|
}
|
|||
|
},{
|
|||
|
url: require("../../../public/images/cesiumjsxmind_new.png"),
|
|||
|
title: 'CesiumJS 小记',
|
|||
|
content: 'CesiumJS是一个开源的用于创建具有最佳性能、精度、视觉质量和易用性的世界级3D场景地图的JavaScript库。',
|
|||
|
pageInfo: {
|
|||
|
frontmatter: {
|
|||
|
author: "ac",
|
|||
|
categories: ["GIS"],
|
|||
|
date: "2020-12-02T00:00:00.000Z",
|
|||
|
tags: ["CesiumJS"],
|
|||
|
title: "CesiumJS 小记",
|
|||
|
},
|
|||
|
key: "v-25952a820",
|
|||
|
path: "/article/gis/cesiumjs/cesiumjs.html",
|
|||
|
regularPath: "/article/gis/cesiumjs/cesiumjs.html",
|
|||
|
relativePath: "article/gis/cesiumjs/cesiumjs.md",
|
|||
|
title: "CesiumJS 小记"
|
|||
|
}
|
|||
|
}
|
|||
|
],
|
|||
|
};
|
|||
|
},
|
|||
|
mounted() {
|
|||
|
this.changeWin();
|
|||
|
window.onresize = () => {
|
|||
|
//当窗口发生改变时触发
|
|||
|
this.changeWin();
|
|||
|
};
|
|||
|
},
|
|||
|
methods: {
|
|||
|
toDetail(path) {
|
|||
|
this.$router.push(path);
|
|||
|
},
|
|||
|
changeWin() {
|
|||
|
let w = document.body.clientWidth;
|
|||
|
this.fits = w > 768;
|
|||
|
},
|
|||
|
},
|
|||
|
};
|
|||
|
</script>
|
|||
|
|
|||
|
<style lang="stylus">
|
|||
|
.time {
|
|||
|
font-size: 13px;
|
|||
|
color: #999;
|
|||
|
}
|
|||
|
|
|||
|
.bottom {
|
|||
|
margin-top: 13px;
|
|||
|
line-height: 12px;
|
|||
|
}
|
|||
|
|
|||
|
.button {
|
|||
|
padding: 0;
|
|||
|
float: right;
|
|||
|
}
|
|||
|
|
|||
|
.image {
|
|||
|
width: 100%;
|
|||
|
display: block;
|
|||
|
}
|
|||
|
|
|||
|
.clearfix:before, .clearfix:after {
|
|||
|
display: table;
|
|||
|
content: '';
|
|||
|
}
|
|||
|
|
|||
|
.clearfix:after {
|
|||
|
clear: both;
|
|||
|
}
|
|||
|
.part2-container{
|
|||
|
text-align center
|
|||
|
.major{
|
|||
|
font-size 1.6rem
|
|||
|
margin-bottom 1.8rem
|
|||
|
}
|
|||
|
}
|
|||
|
.photo-container {
|
|||
|
overflow: hidden;
|
|||
|
padding: 10px;
|
|||
|
.photo {
|
|||
|
height: 200px;
|
|||
|
width: 100%;
|
|||
|
background-size: 100% 100%;
|
|||
|
image-rendering: auto;
|
|||
|
image-rendering: crisp-edges;
|
|||
|
image-rendering: pixelated;
|
|||
|
}
|
|||
|
}
|
|||
|
.abstract-container{
|
|||
|
text-align left
|
|||
|
.abstract-title {
|
|||
|
position: relative;
|
|||
|
font-size: 1.28rem;
|
|||
|
line-height: 46px;
|
|||
|
display: inline-block;
|
|||
|
|
|||
|
&:after {
|
|||
|
content: '';
|
|||
|
position: absolute;
|
|||
|
width: 100%;
|
|||
|
height: 2px;
|
|||
|
bottom: 0;
|
|||
|
left: 0;
|
|||
|
background-color: $accentColor;
|
|||
|
visibility: hidden;
|
|||
|
-webkit-transform: scaleX(0);
|
|||
|
transform: scaleX(0);
|
|||
|
transition: 0.3s ease-in-out;
|
|||
|
}
|
|||
|
// &:hover a
|
|||
|
// color $accentColor
|
|||
|
&:hover:after {
|
|||
|
visibility: visible;
|
|||
|
-webkit-transform: scaleX(1);
|
|||
|
transform: scaleX(1);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.el-carousel__item h3 {
|
|||
|
color: #99a9bf;
|
|||
|
font-size: 14px;
|
|||
|
opacity: 0.75;
|
|||
|
line-height: 200px;
|
|||
|
margin: 0;
|
|||
|
border: solid 1px gray;
|
|||
|
}
|
|||
|
|
|||
|
.el-carousel__item:nth-child(2n) {
|
|||
|
background-color: var(--background-color);
|
|||
|
box-shadow: var(--box-shadow);
|
|||
|
transition: all 0.3s;
|
|||
|
border: solid 1px #e0e0e0;
|
|||
|
&:hover {
|
|||
|
box-shadow: var(--box-shadow-hover);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.el-carousel__item:nth-child(2n + 1) {
|
|||
|
background-color: var(--background-color);
|
|||
|
box-shadow: var(--box-shadow);
|
|||
|
transition: all 0.3s;
|
|||
|
border: solid 1px #e0e0e0;
|
|||
|
|
|||
|
&:hover {
|
|||
|
box-shadow: var(--box-shadow-hover);
|
|||
|
}
|
|||
|
}
|
|||
|
</style>
|