返回顶部为什么会刷新页面
来源:7-1 返回顶部组件
慕盖茨6589387
2019-08-29 17:43:04
<template>
<div class="home">
<header class="g-header-container">
<home-header :class="{'header-transition': isHeaderTransition}" ref="header"/>
</header>
<me-scroll
:data="recommends"
pullDown
pullUp
@pull-down="pullToRefresh"
@pull-up="pullToLoadMore"
@scroll-end="scrollEnd"
@pull-down-transition-end="pullDownTransitionEnd"
@scroll="scroll"
ref="scroll"
>
<home-slider ref="slider"></home-slider>
<home-nav></home-nav>
<home-recommend @loaded="getRecommends" ref="recommend"/>
</me-scroll>
<div class="g-backtop-container">
<me-backtop :visible="isBacktopVisible" @backtop="backToTop"></me-backtop>
</div>
<router-view></router-view>
</div>
</template>
<script>
import HomeHeader from './header';
import HomeSlider from './slider';
import MeScroll from 'base/scroll';
import MeBacktop from 'base/backtop';
import HomeNav from './nav';
import HomeRecommend from './recommend';
import {HEADER_TRANSITION_HEIGHT} from './config';
export default {
name: 'Home',
components: {
HomeHeader,
HomeSlider,
MeScroll,
HomeNav,
HomeRecommend,
MeBacktop
},
data() {
return {
recommends: [],
isBacktopVisible: false,
isHeaderTransition: false
};
},
methods: {
updataScroll() {
},
getRecommends(recommends) {
this.recommends = recommends;
},
pullToRefresh(end) {
this.$refs.slider.update().then(end);
// setTimeout(() => {
// console.log('下拉刷新');
// end();
// }, 1000);
},
pullToLoadMore(end) {
this.$refs.recommend.update().then(end).catch(err => {
if (err) {
console.log(err);
}
end();
});
},
scroll(translate) {
this.changeHeaderStatus(translate);
},
scrollEnd(translate, scroll, pulling) {
if (!pulling) {
this.changeHeaderStatus(translate);
}
this.isBacktopVisible = translate < 0 && -translate > scroll.height;
},
pullDownTransitionEnd() {
},
backToTop() {
this.$refs.scroll && this.$refs.scroll.scrollToTop();
},
changeHeaderStatus(translate) {
if (translate > 0) {
this.$refs.header.hide();
return;
}
this.$refs.header.show();
this.isHeaderTransition = -translate > HEADER_TRANSITION_HEIGHT;
}
}
};
</script>
<style lang="scss" scoped>
@import "~assets/scss/mixins";
.home {
overflow: hidden;
width: 100%;
height: 100%;
background-color: $bgc-theme;
}
</style>
<template>
<transition name="mine-backtop">
<a
href=""
class="mine-backtop"
v-show="visible"
@click="backToTop" >
<i class="iconfont icon-backtop"></i>
</a>
</transition>
</template>
<script>
export default {
name: 'MeBacktop',
props: {
visible: {
type: Boolean,
default: false
}
},
methods: {
backToTop() {
this.$emit('backtop');
}
}
};
</script>
<style lang="scss" scoped>
@import "~assets/scss/mixins";
.mine-backtop {
overflow: hidden;
@include flex-center();
width: 45px;
height: 45px;
background-color: rgba(0, 0, 0, 0.6);
border: none;
border-radius: 50%;
.iconfont {
color: #fff;
font-size: 38px;
}
}
.mine-backtop {
&-enter-active,
&-leave-active {
transition: opacity 0.4s;
}
&-enter,
&-leave-to {
opacity: 0;
}
}
</style>1回答
好帮手慕慕子
2019-08-29
同学你好, 因为a链接的href属性值为空的时候, 点击链接默认会刷新页面。
建议: 可以a链接的href属性添加“#”值,阻止默认刷新页面

如果帮助到了你, 欢迎采纳!
祝学习愉快~~~
相似问题