我是靠谱客的博主 岁月静好,最近开发中收集的这篇文章主要介绍js判断页面滚动方向,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

开发中有很多根据滚动来判断的逻辑,这时候最重要的一个步骤就是先判断滚动方向,然后才能进行后续逻辑
我把自己最近项目中用到的代码放在下面(项目用的js和vue版本),各位酌情修改

js版本:

var startY = 0;
var that = this;
 document.addEventListener("touchstart",function(e){
     startY = e.changedTouches[0].pageY;
 },false);
 document.addEventListener("touchmove",function(e){
     var endY = e.changedTouches[0].pageY;
     var changeVal = endY - startY;
     if(endY < startY){//向上滑
     //    alert("向上滑");
     }else if(endY > startY){//向下滑
     //    alert("向下滑");
       
     }else{
//                    console.log("没有偏移");
     }
     // 获取屏幕高度

 },false);

Vue版本:

 data() {
    return {
    	initTop: 0 
    }
 }
 methodds:{
   scrollEvent() {
      // 判断滚动方向
      let scrollTop = this.$refs["room"].wrap.scrollTop;
      let scroll = scrollTop - this.initTop;
      this.initTop = scrollTop;
      let dir = "down";
      dir = scroll <= 0 ? "up" : "down";
      if (dir === "up") {
       //向上滚动
      } else {
      // 向下滚动
        if (scrollTop > 20) {
          // 判断滚动距离大于20px
        }
      }
    },
}

demo:

<script>
var startY = 0;var that = this;var x = document.getElementsByClassName("asd");
window.onload= function(){
document.addEventListener("touchstart",function(e){
startY = e.changedTouches[0].pageY;
 },false);
document.addEventListener("touchmove",function(e){
var endY = e.changedTouches[0].pageY;
var changeVal = endY - startY;
if(endY < startY){
x[0].style.display="none";
}else if(endY > startY){
x[0].style.display="block";
}},false);}
</script>


最后

以上就是岁月静好为你收集整理的js判断页面滚动方向的全部内容,希望文章能够帮你解决js判断页面滚动方向所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(298)

评论列表共有 0 条评论

立即
投稿
返回
顶部