<template>
<div class="header">
<ul class="header-button-left">
<li>Cancel</li>
</ul>
<ul class="header-button-right">
<li>Next</li>
</ul>
<img src="./assets/logo.png" class="logo" />
</div>
<Container :step="step" :instaDatus="instaDatus"/>
<button @click="more">더 보기</button>
<div class="footer">
<ul class="footer-button-plus">
<input type="file" id="file" class="inputfile" />
<label for="file" class="input-plus">+</label>
</ul>
</div>
</template>
<script>
import ContainerPage from './components/ContainerPage.vue'
import instaDatus from './components/data'
import axios from 'axios'
export default {
name: 'App',
data() {
return {
step : 2,
instaDatus: instaDatus,
}
},
methods: {
more() {
axios.post("URL", {name: 'kin'}).then().catch((err)=>{
console.log(err);
})
axios.get('https://codingapple1.github.io/vue/more1.json').
then((result) => {
this.instaDatus.push(result.data);
})
}
},
components: {
Container: ContainerPage,
}
}
</script>
<style>
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
}
body {
margin: 0;
}
ul {
padding: 5px;
list-style-type: none;
}
.logo {
width: 22px;
margin: auto;
display: block;
position: absolute;
left: 0;
right: 0;
top: 13px;
}
.header {
width: 100%;
height: 40px;
background-color: white;
padding-bottom: 8px;
position: sticky;
top: 0;
}
.header-button-left {
color: skyblue;
float: left;
width: 50px;
padding-left: 20px;
cursor: pointer;
margin-top: 10px;
}
.header-button-right {
color: skyblue;
float: right;
width: 50px;
cursor: pointer;
margin-top: 10px;
}
.footer {
width: 100%;
position: sticky;
bottom: 0;
padding-bottom: 10px;
background-color: white;
}
.footer-button-plus {
width: 80px;
margin: auto;
text-align: center;
cursor: pointer;
font-size: 24px;
padding-top: 12px;
}
.sample-box {
width: 100%;
height: 600px;
background-color: bisque;
}
.inputfile {
display: none;
}
.input-plus {
cursor: pointer;
}
#app {
box-sizing: border-box;
font-family: "consolas";
margin-top: 60px;
width: 100%;
max-width: 460px;
margin: auto;
position: relative;
border-right: 1px solid #eee;
border-left: 1px solid #eee;
}
</style>
<template>
<div>
<div v-if="step == 0">
<Post :instaData="instaDatus[i]" v-for="(a, i) in instaDatus" :key="i" />
</div>
<div v-if="step == 1">
<div class="upload-image"></div>
<div class="filters">
<div class="filter-1"></div>
<div class="filter-1"></div>
<div class="filter-1"></div>
<div class="filter-1"></div>
<div class="filter-1"></div>
</div>
</div>
<div v-if="step == 2">
<div class="upload-image"></div>
<div class="write">
<textarea class="write-box">write!</textarea>
</div>
</div>
</div>
</template>
<script>
import PostPage from './PostPage'
export default {
components: {
Post : PostPage,
},
props: {
instaDatus : Array,
step : Number,
}
}
</script>
<style>
.upload-image{
width: 100%;
height: 450px;
background: cornflowerblue;
background-size : cover;
}
.filters{
overflow-x:scroll;
white-space: nowrap;
}
.filter-1 {
width: 100px;
height: 100px;
background-color: cornflowerblue;
margin: 10px 10px 10px auto;
padding: 8px;
display: inline-block;
color : white;
background-size: cover;
}
.filters::-webkit-scrollbar {
height: 5px;
}
.filters::-webkit-scrollbar-track {
background: #f1f1f1;
}
.filters::-webkit-scrollbar-thumb {
background: #888;
border-radius: 5px;
}
.filters::-webkit-scrollbar-thumb:hover {
background: #555;
}
.write-box {
border: none;
width: 90%;
height: 100px;
padding: 15px;
margin: auto;
display: block;
outline: none;
}
</style>