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);
}

 

posted @ 2023-07-05 10:27  JackieDYH  阅读(176)  评论(0编辑  收藏  举报  来源