iview BackTop 返回頂部 組件無效解決


通過查找博客,此組件需要固定的高度才能使用,而筆者的頁面主內容顯示區域高度是通過calc(~'100vh - 140px');計算得來,故無法使用,最終只得自己實現返回頂部方法,代碼如下:

頁面布局結構:

 1 <Layout>
 2     <Header>
 3     </Header>
 4 
 5     <Layout>
 6         <Sider>
 7         </Sider>
 8 
 9         <Layout class="index-main" ref="layoutmain">
10         <!--主內容區域,即滾動條出現區域-->
11         <Content class="content" ref="indexcontent">
12         
13         </Content>
14           <Footer class="con-foot">2011-2020 &copy;
15           <BackTop @on-click="toTop(30)"></BackTop><!--返回頂部組件,只使用原來的樣式,方法重寫-->
16         </Layout>
17 
18       </Layout>
19 </Layout>

返回頂部方法:

<script>

export default {
  name: 'index',
  mounted() {
    let div = this.$refs.layoutmain.$el;
    div.addEventListener('scroll', this.handleScroll);//監聽滾動條
    
  },
    methods: {
    handleScroll (e) {
      let div = this.$refs.layoutmain.$el;
      let backDiv= document.querySelector('.ivu-back-top');
      if (div.scrollTop > 100) {//大於滾動距離顯示返回頂部圖標
        
        backDiv.style.display = 'block';
      } else {
        
        backDiv.style.display = 'none';
      }
    },
    toTop(step=40){

      //參數step表示時間間隔的幅度大小,以此來控制速度
      //當回到頁面頂部的時候需要將定時器清除
      let div = this.$refs.layoutmain.$el;
      div.scrollTop-=step;
      if (div.scrollTop>0) {
          var time=setTimeout(()=>this.toTop(step),15);
      }else {
          clearTimeout(time);
      }
    }
};
</script>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM