vue中实现滚动到一定距离显示联系我们和回到顶部等功能
滚动到一定距离返回到顶部,使用 scrollIntoView 方法
Element.scrollIntoView方法滚动当前元素,进入浏览器的可见区域
该方法可以接受一个布尔值作为参数。如果为true,表示元素的顶部与当前区域的可见部分的顶部对齐(前提是当前区域可滚动);如果为false,表示元素的底部与当前区域的可见部分的尾部对齐(前提是当前区域可滚动)。如果没有提供该参数,默认为true
使用该方法的原理与使用锚点的原理类似,在页面最上方设置目标元素,当页面滚动时,目标元素被滚动到页面区域以外,点击回到顶部按钮,使目标元素重新回到原来位置,则达到预期效果。
<!-- 热线电话 固定展示 -->
<v-tel id="tel" class="tel"></v-tel>
/*刚开始不展示*/
.tel{
display: none;
}
mounted() {
// 控制电话显示
window.addEventListener("scroll", this.scrollToTop);
},
methods: {
//监听回到顶部按钮距浏览器顶部的距离,滚动的距离如果大于浏览器高度时,设置 toTop 为true,否则就是false;
// scrollToTop() {
// var scrollTop =
// window.pageYOffset ||
// document.documentElement.scrollTop ||
// document.body.scrollTop;
// console.log("距离顶部的距离:" + scrollTop);
// },
scrollToTop(el) {
let topBtn = document.getElementById("tel");
let scrollTop =
window.pageYOffset ||
document.documentElement.scrollTop ||
document.body.scrollTop;
let browserHeight = window.outerHeight;
if (scrollTop > browserHeight - 500) {
topBtn.style.display = "block";
} else {
topBtn.style.display = "none";
}
}
},
//离开该页面需要移除这个监听的事件,不然会报错;
destroyed() {
window.removeEventListener("scroll", this.scrollToTop);
}
本文来自博客园,作者:JackieDYH,转载请注明原文链接:https://www.cnblogs.com/JackieDYH/p/17634452.html