vue返回頂部帶動畫

一. 需求

首頁內容多虚倒,翻過首頁第一頁彩届,顯示返回頂部按鈕

二. 邏輯

1.判斷返回頂部按鈕什么時候顯示:

借助@scroll監(jiān)聽滾動阳液,獲取當前滾動距離頂部的高度霉翔,獲取當前屏幕高度,當滾動高度大于屏幕高度柒凉,顯示返回頂部按鈕族阅,反之小于隱藏。

2.點擊按鈕膝捞,為返回頂部加上動畫:

設置步進值坦刀,通過逐漸增加步進值,來實現動畫效果蔬咬。注意這里要防止用戶多次點擊鲤遥,加上開關。

三.遇到的問題

1.設置window.scrollTop(0,滾動高度) 和document.documentElement.scrollTop=滾動高度 無效:

由于是加在id=box上的滾動林艘,并且由于頭部底部fixed固定盖奈,中間box也設置了固定定位。樣式設置的差異與理想的較大狐援,滾動區(qū)域實際是box钢坦,并且查看了監(jiān)視滾動方法getScrollTop方法,確定滾動元素是box,所以給box加上ref屬性獲取到啥酱,并將滾動的高度賦值給this.$refs.box.scrollTop

2.滾動緩慢:

在setInterval里未設置步進值steep遞增爹凹,勻速滾動效果體驗差。

四.代碼參考

<template>
  <div class="box" ref="box" @scroll="getScrollTop">
    <header></header>
    <div>具體內容</div>
   <footer></footer>
    <div class="scrollTop" v-show="showTop" @click="toTop">
      <img src="./imgs/zd.png" alt="">
    </div>
  </div>
</template>
<script>
export default {
  name: 'scroll-top',
  data() {
    return {
      scrollTop: 0,
      showTop: false,
      scrollTrigger: false
    };
  },
  computed: {
  },
  methods: {
    // 返回頂部
    toTop() {
      let that = this;
      // 防止用戶頻繁點擊返回頂部按鈕镶殷,待返回頂部成功后設置scrollTrigger為初始值
      if (that.scrollTrigger) {
        return;
      }
      // 獲取當前距離頂部的數值逛万,設置每次上滑的高度直到滾動到頂部為止
      let scrollTop = this.scrollTop;
      let steep = scrollTop / 2000;
      let timer = setInterval(() => {
        that.scrollTrigger = true;
        // 上滑滾動的速度慢慢加快,第一次走2000/1,然后減去已走的距離批钠,下一次用剩下的距離再減去步進值宇植,步進值也是不斷變化,這樣速度會越來越快
        scrollTop -= steep;
        // 步進值不改變的話會勻速緩慢上滑埋心,不斷增加步進值上滑的距離增加指郁,視覺效果速度變快
        steep += 5;
        if (scrollTop <= 0) {
          clearInterval(timer);
          that.scrollTrigger = false;
        }
        // 由于是加在box上的滾動,直接用window.scrollTop無效拷呆,查看了getScrollTop方法滾動的元素闲坎,所以加在box上
        that.$refs.box.scrollTop = scrollTop;
      }, 30);
    },
    // 監(jiān)聽滾動條
    getScrollTop(e) {
      let that = this;
      // 設備高度
      let clientHeight = document.documentElement.clientHeight || document.body.clientHeight;
      let scrollTop = e.srcElement.scrollTop;
      this.scrollTop = scrollTop;
    // 2倍像素除以2疫粥,-92是header和footer的高度
      if (scrollTop > ((clientHeight / 2) - 92)) {
        that.showTop = true;
      } else {
        that.showTop = false;
      }
    }
  }
};
</script>
<style scoped lang="less">
  .box{
    position: absolute;
    top: 0;
    bottom: 48px;
    left: 0;
    right: 0;
    overflow-y: auto;
    z-index: 1;
    padding-top: 44px;
    background-color: #f4f4f4;
    font-size: 15px;
    color: #000000;
  }
  .scrollTop{
    position: fixed;
    right: 40px;
    bottom: 80px;
    cursor: pointer;
    width:41px;
    height: 41px;
    z-index: 2;
    img{
      width:100%;
      height:100%;
    }
  }
</style>

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市腰懂,隨后出現的幾起案子梗逮,更是在濱河造成了極大的恐慌,老刑警劉巖绣溜,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件慷彤,死亡現場離奇詭異,居然都是意外死亡怖喻,警方通過查閱死者的電腦和手機底哗,發(fā)現死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來锚沸,“玉大人跋选,你說我怎么就攤上這事』冢” “怎么了前标?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長距潘。 經常有香客問我炼列,道長,這世上最難降的妖魔是什么绽昼? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮须蜗,結果婚禮上硅确,老公的妹妹穿的比我還像新娘。我一直安慰自己明肮,他們只是感情好菱农,可當我...
    茶點故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著柿估,像睡著了一般循未。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上秫舌,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天的妖,我揣著相機與錄音,去河邊找鬼足陨。 笑死嫂粟,一個胖子當著我的面吹牛,可吹牛的內容都是我干的墨缘。 我是一名探鬼主播星虹,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼零抬,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了宽涌?” 一聲冷哼從身側響起平夜,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎卸亮,沒想到半個月后忽妒,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡嫡良,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年锰扶,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,769評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡扶镀,死狀恐怖呻率,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情京闰,我是刑警寧澤,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布甩苛,位于F島的核電站蹂楣,受9級特大地震影響,放射性物質發(fā)生泄漏讯蒲。R本人自食惡果不足惜痊土,卻給世界環(huán)境...
    茶點故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望墨林。 院中可真熱鬧赁酝,春花似錦、人聲如沸旭等。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽搔耕。三九已至隙袁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間弃榨,已是汗流浹背菩收。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鲸睛,地道東北人坛梁。 一個月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像腊凶,于是被迫代替她去往敵國和親划咐。 傳聞我的和親對象是個殘疾皇子拴念,可洞房花燭夜當晚...
    茶點故事閱讀 45,781評論 2 361

推薦閱讀更多精彩內容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標準褐缠。 注意:講述HT...
    kismetajun閱讀 27,521評論 1 45
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案政鼠? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,761評論 1 92
  • HTML標簽解釋大全 一、HTML標記 標簽:!DOCTYPE 說明:指定了 HTML 文檔遵循的文檔類型定義(D...
    米塔塔閱讀 3,263評論 1 41
  • 1.第一種方式:錨鏈接 優(yōu)點:簡單快速队魏,沒有兼容性問題 缺點: 視覺上不夠直觀公般,用戶體驗不太好 2.js的方式: ...
    love2013閱讀 793評論 0 0
  • 今天上午嘩嘩的下雨了,本來想著去趕集胡桨,由于下雨也沒去成官帘,雨停后也快中午了吃了午飯,二寶睡覺了昧谊,睡醒后寶爸去老...
    syl飄雪閱讀 132評論 0 0