When the button is clicked, the page should go to the top.
But it's just a click, I can't get what I want.
I am using javascript and vue.
The code below is the main code.
<template>
<div id="mainboard" ref="mainboard">
<main-logo></main-logo>
<b-container class="body">
<grid-board v-if="viewMode === 'grid'" v-bind:postListProps="postList" v-bind:focusedPostID="focusedPost.id"></grid-board>
<b-row v-if="viewMode === 'grid'">
<b-col>
<infinite-scroll v-bind:clientHeight="clientHeight"
v-bind:scrollHeight="scrollHeight"
v-bind:scrollTop="scrollTop"
v-bind:thresholdProp="threshold"
v-bind:messageProp.sync="scrollMsg"
@need-more="onScrollReachedBottom"></infinite-scroll>
</b-col>
</b-row>
</b-container>
</div>
</template>
<script>
import Hashtag from './Hashtag.vue'
import Scrollbar from './Scrollbar.vue'
export default {
components: { Scrollbar, Hashtag },
name:
'MainBoard',
data () {
return {
msg: 'hello world',
viewMode: 'grid',
openSideList: false,
focusedPost: {},
inputText: '',
clientHeight: 0,
scrollHeight: 0,
scrollTop: 0,
threshold: 200,
scrollMsg: '',
isLoading: false,
dummyCnt: 0,
postList: [
{
id: '993915c4-878b-4486-b9a8-052971a9620d',
title: 'aaaa',
descript: 'This is ...',
date: '2021/04/09',
profileImg: 'https://avatars.githubusercontent.com/u/16532326?v=4',
writer: 'stories2stories2stories2stories2stories2stories2stories2stories2stories2',
good: 1,
img: 'https://upload.wikimedia.org/wikipedia/commons/9/90/Seoul_City_Hall_20190608_001.jpg',
lat: 37.566543,
lot: 126.978421
},
{
id: '993915c4-878b-4486-b9a8-052971a9620d',
title: 'aaaa',
descript: 'This is ...',
date: '2021/04/09',
profileImg: 'https://avatars.githubusercontent.com/u/16532326?v=4',
writer: 'stories2stories2stories2stories2stories2stories2stories2stories2stories2',
good: 1,
img: 'https://upload.wikimedia.org/wikipedia/commons/9/90/Seoul_City_Hall_20190608_001.jpg',
lat: 37.566543,
lot: 126.978421
},
{
id: '993915c4-878b-4486-b9a8-052971a9620d',
title: 'aaaa',
descript: 'This is ...',
date: '2021/04/09',
profileImg: 'https://avatars.githubusercontent.com/u/16532326?v=4',
writer: 'stories2stories2stories2stories2stories2stories2stories2stories2stories2',
good: 1,
img: 'https://upload.wikimedia.org/wikipedia/commons/9/90/Seoul_City_Hall_20190608_001.jpg',
lat: 37.566543,
lot: 126.978421
},
{
id: '993915c4-878b-4486-b9a8-052971a9620d',
title: 'aaaa',
descript: 'This is ...',
date: '2021/04/09',
profileImg: 'https://avatars.githubusercontent.com/u/16532326?v=4',
writer: 'stories2stories2stories2stories2stories2stories2stories2stories2stories2',
good: 1,
img: 'https://upload.wikimedia.org/wikipedia/commons/9/90/Seoul_City_Hall_20190608_001.jpg',
lat: 37.566543,
lot: 126.978421
},
{
id: '993915c4-878b-4486-b9a8-052971a9620d',
title: 'aaaa',
descript: 'This is ...',
date: '2021/04/09',
profileImg: 'https://avatars.githubusercontent.com/u/16532326?v=4',
writer: 'stories2stories2stories2stories2stories2stories2stories2stories2stories2',
good: 1,
img: 'https://upload.wikimedia.org/wikipedia/commons/9/90/Seoul_City_Hall_20190608_001.jpg',
lat: 37.566543,
lot: 126.978421
},
{
id: '993915c4-878b-4486-b9a8-052971a9620d',
title: 'aaaa',
descript: 'This is ...',
date: '2021/04/09',
profileImg: 'https://avatars.githubusercontent.com/u/16532326?v=4',
writer: 'stories2stories2stories2stories2stories2stories2stories2stories2stories2',
good: 1,
img: 'https://upload.wikimedia.org/wikipedia/commons/9/90/Seoul_City_Hall_20190608_001.jpg',
lat: 37.566543,
lot: 126.978421
},
{
id: '993915c4-878b-4486-b9a8-052971a9620d',
title: 'aaaa',
descript: 'This is ...',
date: '2021/04/09',
profileImg: 'https://avatars.githubusercontent.com/u/16532326?v=4',
writer: 'stories2stories2stories2stories2stories2stories2stories2stories2stories2',
good: 1,
img: 'https://upload.wikimedia.org/wikipedia/commons/9/90/Seoul_City_Hall_20190608_001.jpg',
lat: 37.566543,
lot: 126.978421
},
{
id: '993915c4-878b-4486-b9a8-052971a9620d',
title: 'aaaa',
descript: 'This is ...',
date: '2021/04/09',
profileImg: 'https://avatars.githubusercontent.com/u/16532326?v=4',
writer: 'stories2stories2stories2stories2stories2stories2stories2stories2stories2',
good: 1,
img: 'https://upload.wikimedia.org/wikipedia/commons/9/90/Seoul_City_Hall_20190608_001.jpg',
lat: 37.566543,
lot: 126.978421
},
{
id: '993915c4-878b-4486-b9a8-052971a9620d',
title: 'aaaa',
descript: 'This is ...',
date: '2021/04/09',
profileImg: 'https://avatars.githubusercontent.com/u/16532326?v=4',
writer: 'stories2stories2stories2stories2stories2stories2stories2stories2stories2',
good: 1,
img: 'https://upload.wikimedia.org/wikipedia/commons/9/90/Seoul_City_Hall_20190608_001.jpg',
lat: 37.566543,
lot: 126.978421
},
{
id: '993915c4-878b-4486-b9a8-052971a9620d',
title: 'aaaa',
descript: 'This is ...',
date: '2021/04/09',
profileImg: 'https://avatars.githubusercontent.com/u/16532326?v=4',
writer: 'stories2stories2stories2stories2stories2stories2stories2stories2stories2',
good: 1,
img: 'https://upload.wikimedia.org/wikipedia/commons/9/90/Seoul_City_Hall_20190608_001.jpg',
lat: 37.566543,
lot: 126.978421
},
{
id: '993915c4-878b-4486-b9a8-052971a9620d',
title: 'aaaa',
descript: 'This is ...',
date: '2021/04/09',
profileImg: 'https://avatars.githubusercontent.com/u/16532326?v=4',
writer: 'stories2stories2stories2stories2stories2stories2stories2stories2stories2',
good: 1,
img: 'https://upload.wikimedia.org/wikipedia/commons/9/90/Seoul_City_Hall_20190608_001.jpg',
lat: 37.566543,
lot: 126.978421
},
{
id: '993915c4-878b-4486-b9a8-052971a9620d',
title: 'aaaa',
descript: 'This is ...',
date: '2021/04/09',
profileImg: 'https://avatars.githubusercontent.com/u/16532326?v=4',
writer: 'stories2stories2stories2stories2stories2stories2stories2stories2stories2',
good: 1,
img: 'https://upload.wikimedia.org/wikipedia/commons/9/90/Seoul_City_Hall_20190608_001.jpg',
lat: 37.566543,
lot: 126.978421
},
{
id: '993915c4-878b-4486-b9a8-052971a9620d',
title: 'aaaa',
descript: 'This is ...',
date: '2021/04/09',
profileImg: 'https://avatars.githubusercontent.com/u/16532326?v=4',
writer: 'stories2stories2stories2stories2stories2stories2stories2stories2stories2',
good: 1,
img: 'https://upload.wikimedia.org/wikipedia/commons/9/90/Seoul_City_Hall_20190608_001.jpg',
lat: 37.566543,
lot: 126.978421
},
{
id: '993915c4-878b-4486-b9a8-052971a9620d',
title: 'aaaa',
descript: 'This is ...',
date: '2021/04/09',
profileImg: 'https://avatars.githubusercontent.com/u/16532326?v=4',
writer: 'stories2stories2stories2stories2stories2stories2stories2stories2stories2',
good: 1,
img: 'https://upload.wikimedia.org/wikipedia/commons/9/90/Seoul_City_Hall_20190608_001.jpg',
lat: 37.566543,
lot: 126.978421
},
{
id: '993915c4-878b-4486-b9a8-052971a9620d',
title: 'aaaa',
descript: 'This is ...',
date: '2021/04/09',
profileImg: 'https://avatars.githubusercontent.com/u/16532326?v=4',
writer: 'stories2stories2stories2stories2stories2stories2stories2stories2stories2',
good: 1,
img: 'https://upload.wikimedia.org/wikipedia/commons/9/90/Seoul_City_Hall_20190608_001.jpg',
lat: 37.566543,
lot: 126.978421
}
]
}
},
watch: {
viewMode: {
immediate: true,
handler (val) {
this.$nextTick(() => {
if (this.$refs.sidelist) {
this.$refs.sidelist.addEventListener('scroll', this.scrollHandler)
}
})
}
}
},
mounted () {
const dev = localStorage.getItem('dev') || false
if (dev) {
this.postList = JSON.parse(localStorage.getItem('postList')) || []
}
this.$refs.mainboard.addEventListener('scroll', this.scrollHandler)
this.$refs.mainboard.addEventListener('resize', this.scrollHandler)
this.scrollHandler()
},
methods: {
onScrollReachedBottom () {
console.log(`[MainBoard] [onScrollReachedBottom] let's get more data`)
if (!this.isLoading) {
this.scrollMsg = ''
this.isLoading = true
setTimeout(() => {
this.isLoading = false
if (this.dummyCnt < 1) {
this.dummyCnt++
const dummy = JSON.parse(JSON.stringify(this.postList))
// this.postList = this.postList.concat(dummy)
dummy.forEach(item => {
this.postList.push(item)
})
console.log('concat', this.postList.length)
} else {
this.scrollMsg = '더 이상 리뷰가 없어요'
}
}, 2000)
}
},
scrollHandler () {
switch (this.viewMode) {
case 'grid':
if (this.$refs.mainboard) {
this.clientHeight = this.$refs.mainboard.clientHeight
this.scrollHeight = this.$refs.mainboard.scrollHeight
this.scrollTop = this.$refs.mainboard.scrollTop
} else {
console.warn(`[MainBoard] [scrollHandler] Undefined mainboard ref`)
}
break
case 'map':
if (this.$refs.sidelist) {
this.clientHeight = this.$refs.sidelist.clientHeight
this.scrollHeight = this.$refs.sidelist.scrollHeight
this.scrollTop = this.$refs.sidelist.scrollTop
} else {
console.warn(`[MainBoard] [scrollHandler] Undefined sidelist ref`)
}
break
}
if (this.scrollMsg && this.clientHeight + this.scrollTop <= this.scrollHeight - this.threshold) {
this.scrollMsg = ''
}
}
}
}
</script>
<style scoped>
#mainboard {
position: relative;
width: 100vw;
height: 100vh;
overflow-y: auto;
}
</style>
I have inserted the following code into this code.
This code is <main-logo></main-logo> in the code above.
<template>
<div class = "main-logo">
<b-button class = "logo-img" pill variant="danger" v-on:click="greet()">메인로고입니다</b-button>
</div>
</template>
<script>
export default {
name: 'main-logo',
methods: {
greet: function () {
window.scrollTo(0, 0)
console.log('click')
}
}
}
</script>
<style scoped>
.main-logo {
position: fixed;
width: 100vw;
padding-top: 60px;
padding-bottom: 60px;
background: goldenrod;
z-index: 1;
}
</style>
I want to use window.scrollTo(0, 0) in this code.
But it doesn't work. Because overflow-y: auto; in the first code is the cause.
Without it, I can get the desired result.
But I also need overflow-y: auto;. Because that's the only way I can show you things you can't see.
Is there any way to solve the problem by using both?