vue中实现滚动到一定距离回到顶部

滚动到一定距离返回到顶部,使用 scrollIntoView 方法:(完整代码在文章最后)

Element.scrollIntoView方法滚动当前元素,进入浏览器的可见区域

该方法可以接受一个布尔值作为参数。如果为true,表示元素的顶部与当前区域的可见部分的顶部对齐(前提是当前区域可滚动);如果为false,表示元素的底部与当前区域的可见部分的尾部对齐(前提是当前区域可滚动)。如果没有提供该参数,默认为true

使用该方法的原理与使用锚点的原理类似,在页面最上方设置目标元素,当页面滚动时,目标元素被滚动到页面区域以外,点击回到顶部按钮,使目标元素重新回到原来位置,则达到预期效果。
  
第一步:HTML代码/template代码

  
      
  

第二步:vue 中滚动条滚到一定距离后,显示『回到顶部』按钮;

(1)监听滚动事件:利用vue写一个在控制台打印当前的scrollTop。首先,在 mounted 钩子中给window添加一个滚动滚动监听事件

mounted () {
  window.addEventListener('scroll', this.scrollToTop)
},

(2)然后在方法中,添加这个 scrollToTop 方法:

scrollToTop() { 
  var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
  console.log('距离顶部的距离:'+scrollTop) 
}

(3)控制台打印结果:
vue中实现滚动到一定距离回到顶部_第1张图片
(4)监听回到顶部按钮距浏览器顶部的距离,滚动的距离如果大于浏览器高度时,设置 toTop 为true,否则就是false;

scrollToTop(el) {
    let topBtn = document.getElementById('to-top-btn');
    let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
    let browserHeight = window.outerHeight;
    if (scrollTop > browserHeight) {
          topBtn.style.display = 'block';
    } else {
          topBtn.style.display = 'none';
    }
}

(5)离开该页面需要移除这个监听的事件,不然会报错

destroyed () {
    window.removeEventListener('scroll', this.scrollToTop); 
}

完整代码如下:








效果视频:

返回顶部

你可能感兴趣的:(css,vue)