返回顶部为什么会刷新页面
来源: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属性添加“#”值,阻止默认刷新页面
如果帮助到了你, 欢迎采纳!
祝学习愉快~~~
相似问题