为什么没报错 但不显示 返回顶部图标

为什么没报错 但不显示 返回顶部图标

<template>

    <a

      href=""

      class="mine-backtop"

      v-show="visible"  

      @click="backToTop" ><!-- v-show 不止渲染一次一次 -->

      <i class="iconfont icon-backtop"></i>

    </a>

</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;

    }

  }

</style>




<template>

  <div class="home">

    <header class="g-header-container">

      <home-header />

    </header>

    <me-scroll :data="recommends"

    pullDown

    pullUp

    @pull-down="pullToRefresh"

    @pull-up="pullToLoadMore"

    > <!-- //监听事件 -->

      <home-slider ref="slider"/>

      <home-nav/>

      <home-recommend @loaded="getRecommends" ref="recommend"/>

    </me-scroll>

    <div class="g-backtop-container">

    <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';



export default {

  name: "Home",

  components: {

    HomeHeader,

    HomeSlider,

    MeScroll,

    HomeNav,

    HomeRecommend,

    MeBacktop

  },

  data(){

    return {

      recommends:[] 

    }

  },

  methods:{

    updateScroll(){

    },

    getRecommends(recommends){

      this.recommends = recommends;

    },

    pullToRefresh(end){

      this.$refs.slider.update().then(end)

    },

    pullToLoadMore(end){

       this.$refs.recommend.update().then(end).catch(err =>{

         if(err){

           

         }

         end();

         //处理没有更多数据的情况

         //禁止继续加载更多数据

         //替换上拉时的loading,改为没有更多数据

       })


    }

  }

};

</script>


<style lang="scss" scoped>

@import "~assets/scss/mixins";

.home {

  overflow: hidden;

  width: 100%;

  height: 100%;

  background-color: $bgc-theme;

}

</style>



正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕慕子 2020-03-03 10:42:09

同学你好,对于同学开始粘贴的代码,为什么一开始没有显示,是因为visible默认值是false,所以默认就是不显示的,visible默认值修改为true, 打开页面图标就是显示的了。如下:

http://img1.sycdn.imooc.com//climg/5e5dc3a209aeb22a07300340.jpg

测试结果:

http://img1.sycdn.imooc.com//climg/5e5dc3b109194e3000000000.jpg

老师测试源码是可以正常显示和隐藏的。同学如果还有疑问,可以新建提问,将你修改后的代码粘贴过来,老师帮助你测试下,准确的定位与解决问题。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

好帮手慕慕子 2020-03-02 12:20:23

同学你好, 在home/index.vue组件中没有给backtop组件传递参数,也没有设置相关的事件,控制图标的显示与隐藏。

建议:同学可以回顾下视频,结合视频中的讲解,添加上对应的代码。如下:

http://img1.sycdn.imooc.com//climg/5e5c88490926d5b214860362.jpg

http://img1.sycdn.imooc.com//climg/5e5c88ca09d49bcb10020518.jpg
在scroll组件上添加事件

http://img1.sycdn.imooc.com//climg/5e5c88f3091cd97610440610.jpg

在该事件中,判断是否显示图标。http://img1.sycdn.imooc.com//climg/5e5c891909e7c92e23220254.jpg

课程中讲解的很详细,同学可以回顾下课程。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 提问者 你要去哪 #1
    } </style> 一开始就没有 设置这些个样式当然也没有 我都加上了 没有
    2020-03-03 02:11:22
  • 提问者 你要去哪 #2
    我复制老师的代码也没有 不显示
    2020-03-03 02:14:35
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师