Element.scrollIntoView方法滚动当前元素,进入浏览器的可见区域
该方法可以接受一个布尔值作为参数。如果为true,表示元素的顶部与当前区域的可见部分的顶部对齐(前提是当前区域可滚动);如果为false,表示元素的底部与当前区域的可见部分的尾部对齐(前提是当前区域可滚动)。如果没有提供该参数,默认为true
使用该方法的原理与使用锚点的原理类似,在页面最上方设置目标元素,当页面滚动时,目标元素被滚动到页面区域以外,点击回到顶部按钮,使目标元素重新回到原来位置,则达到预期效果。 第一步:HTML代码/template代码
<a href="#top" target="_self" id="to-top-btn"> <img src="../../public/img/返回顶部.png" alt /> </a>第二步: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)控制台打印结果: (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); }返回顶部
