js-scroll判断页面是向上滚动还是向下滚动

摘要:
"dowm":"up");beforeScrollTop=afterScrollTop;},false);})调用方法:scroll;以上方法苹果手机浏览器事件会跳动,解决方法代码改进scrollDirect:function{varbeforeScrollTop=document.body.scrollTop;fn=fn||function(){};window.addEventListener("scroll",function(event){event=event||window.event;varafterScrollTop=document.body.scrollTop;delta=afterScrollTop-befterScrollTop;befterScrollTop=afterScrollTop;varscrollTop=$(this).scrollTop();varscrollHeight=$(document).height();varwindowHeight=$(this).height();if(scrollTop+windowHeight˃scrollHeight-10){fn("up");return;}if(afterScrollTop$(document.body).height-10){fn("up");}else{if(Math.abs(delta)0?"down":"up");}},false);}调用方法:varupflag=1;vardownflag=1;//scroll滑动,上滑和下滑只执行1次!

原理:那当前的scrollTop和之前的scrollTop对比

如果变大了,表示向下滚动(scrollTop值变大);

如果变小了,表示向上滚动(scrollTop值变小)。

方法一:js代码:

$(document).ready(function(){

         var p=0,

                t=0;

          $(window).scroll(function(){

            p=$(this).scrollTop();

             if(t<p){

                  //下滚
}else{

                       //上滚            
}

                setTimeout(function(){ t = p ; },0)

           })

})

方法二:

1.单纯判断滚动条方向:

functionscroll(fn){

     var beforeScrollTop =document.body.scrollTop,

           fn = fn || function(){};

     window.addEventListener("scroll",function(){

          var afterScrollTop =document.body.scrollTop;

          delta = afterScrollTop -beterScrollTop;

          if(delta===0){  return false;  }

           fn(delte>0?"dowm":"up");

           beforeScrollTop =afterScrollTop; 

     },false);

})

调用方法:scroll(function(direction) { console.log(direction) });

以上方法苹果手机浏览器事件会跳动,解决方法代码改进

scrollDirect: function(fn){

           var beforeScrollTop =document.body.scrollTop;

            fn = fn || function(){};

             window.addEventListener("scroll",function(event){

                           event = event ||window.event;

                           var afterScrollTop =document.body.scrollTop;

                            delta = afterScrollTop -befterScrollTop;

                            befterScrollTop =afterScrollTop;

                            var scrollTop = $(this).scrollTop();

                            var scrollHeight =$(document).height();

                             var windowHeight = $(this).height();

                             if(scrollTop + windowHeight > scrollHeight - 10){

                                              fn("up");

                                              return;

                               }

                                if(afterScrollTop < 10 || afterScrollTop > $(document.body).height - 10){

                                               fn("up");

                                }else{

                                             if(Math.abs(delta) < 10){

                                                            return false;

                                              }

                                               fn(delta > 0?"down":"up");

                                         }

             },false);

}

调用方法:

var upflag=1;

var downflag=1;

//scroll滑动,上滑和下滑只执行1次!

crollDirect(function(direction){

if(direction == "down"){

if(downflag){

$(".footer_wrap").slideUp(200);

downlag=0;

upflag=1;

}

}

if(direction=="up"){

if(upflag){

$(".footer_wrap").slideDown(200);

downflag=1;

upflag=0;

}

}

});

滚动条滚动到底部和头部判断

BottomJumpPage:function(){

             var scrollTop = $(this).scrollTop();

              var scrollHeight =$(document).height();

              var windowHeight = $(this).height();

             if(scrollTop + windowHeight == scrollHeight){  //滚动到底部执行事件
console.dir("我到底部了")

              }

              if(scrollTop == 0){                        //滚动到头部执行事件
console.dir("我到头部了")

                }

}

调用方法:$(window).scroll(BottomJumpPage);

地址:https://www.cnblogs.com/liuqingxia/p/7590862.html

免责声明:文章转载自《js-scroll判断页面是向上滚动还是向下滚动》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android程序版本更新--通知栏更新下载安装linux 查看 cpu个数 核心数 线程数下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mac os hot key

了解常见 Mac OS X 快捷键。快捷键是通过按下键盘上的组合键来调用 Mac OS X 功能的一种方式。 要使用快捷键或组合键,您可以同时按修饰键和字符键。例如,同时按下 Command 键(标有符号的按键)和“c”键会将当前选中的任何内容(文本、图形等等)拷贝至夹纸板。这也称作 Command-C 组合键(或快捷键)。 许多组合键中都包含修饰键...

使用迁移学习(Transfer Learning)完成图像的多标签分类(Multi-Label)任务

本文通过迁移学习将训练好的VGG16模型应用到图像的多标签分类问题中。该项目数据来自于Kaggle,每张图片可同时属于多个标签。模型的准确度使用F score进行量化,如下表所示: 标签 预测为Positive(1) 预测为Negative(0) 真值为Positive(1) TP FN 真值为Negative(0) FP TN 例如真实标...

module_init的加载和释放

  像你写C程序需要包含C库的头文件那样,Linux内核编程也需要包含Kernel头文件,大多的Linux驱动程序需要包含下面三个头文件:#include <linux/init.h>#include <linux/module.h>#include <linux/kernel.h>    其中,init.h 定义了驱...

《JavaScript面向对象编程指南》

第一章、引言 1.5 面向对象的程序设计常用概念 对象(名词):是指“事物”在程序设计语言中的表现形式。 这里的事物可以是任何东西,我们可以看到它们具有某些明确特征,能执行某些动作。 这些对象特征就叫做属性(形容词),动作称之为方法(动词)。 类:实际上就是对象的设计蓝图或制作配方。类更多的是一种模板,而对象就是在这些模版的基础上被创建出来的。 封装:主要...

高斯键盘设置指南

高斯键盘设置指南 蓝牙模式 如何打开蓝牙模式 供电 : 蓝牙工作需要供电, 给高斯 GS87-D 供电有两种方式: 键盘背后的开关打到ON; 使用 USB Type-C 电源. 切换模式: 有线和无线模式切换键是 Fn+P 按下 Fn+P 右上角键盘灯闪烁 3 次, 有线模式和蓝牙模式互相切换. 但比较坑的是并没有指示灯表示当前处于有线模式还是蓝...

牛客网2017校招真题在线编程之合唱团问题——动态规划问题首秀

先贴题目 题目描述 有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能力值的乘积最大,你能返回最大的乘积吗? 输入描述: 每个输入包含 1 个测试用例。每个测试数据的第一行包含一个整数 n (1 <= n <= 50),表示学生的个数...