jquery(js)判断页面滚动条(scroll)是向上滚还是向下滚方向判断
来源:互联网 发布:敏捷加密软件破解 编辑:程序博客网 时间:2024/05/02 15:42
webtouch(webapp)页面,防苹果手机safari浏览器,网上滑动,底部导航消失,滑动到底部又出现。向下滑动,底部导航出现。遇到问题1、我一...
webtouch(webapp)页面,防苹果手机safari浏览器,网上滑动,底部导航消失,滑动到底部又出现。向下滑动,底部导航出现。
遇到问题
1、我一开始用swipeup和swipedown来做,发现因为有滚动条,不会触发。因此只能判断滚动条是上滚下滚等。关于手机手势,后面的文章会介绍,欢迎关注!
2、通过上滚下滚来让底部导航显示或者因此,安卓上面的浏览器都可以,但是苹果safari会一闪一闪,原因是苹果safari自动有个弹跳效果,导致事件重复执行,解决办法是给上滚下滚一个距离,滚动到一定距离后返回是上滚还是下滚。
单纯判断滚动条方向
Js代码
- function scroll( fn ) {
- var beforeScrollTop = document.body.scrollTop,
- fn = fn || function() {};
- window.addEventListener("scroll", function() {
- var afterScrollTop = document.body.scrollTop,
- delta = afterScrollTop - beforeScrollTop;
- if( delta === 0 ) return false;
- fn( delta > 0 ? "down" : "up" );
- beforeScrollTop = afterScrollTop;
- }, false);
- }
调用方法:
Js代码
- scroll(function(direction) { console.log(direction) });
以上方法手机苹果浏览器事件会跳动,解决方法及代码改进
Js代码
- 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 - beforeScrollTop;
- beforeScrollTop = 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);
- }
调用方法:
Js代码
- var upflag=1;
- var downflag= 1;
- //scroll滑动,上滑和下滑只执行一次!
- crollDirect(function (direction) {
- if (direction == "down") {
- if (downflag) {
- $(".footer_wrap").slideUp(200);
- downflag = 0;
- upflag = 1;
- }
- }
- if (direction == "up") {
- if (upflag) {
- $(".footer_wrap").slideDown(200);
- downflag = 1;
- upflag = 0;
- }
- }
- });
滚动条滚动到底部和头部判断
其实我上面的函数中已经有判断,下面再列一下!看如下函数!
Js代码
- 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("我到头部了");
- }
- }
调用方法:
Js代码
- $(window).scroll(BottomJumpPage);
0 0
- jquery(js)判断页面滚动条(scroll)是向上滚还是向下滚方向判断
- js判断鼠标滚动放下,向上滚还是向下滚?
- js判断鼠标滚动放下,向上滚还是向下滚?
- 判断listview向上滚还是向下滚
- jquery判断页面滚动条(scroll)是上滚还是下滚,且是否滚动到头部或者底部
- jquery判断页面滚动条(scroll)是上滚还是下滚,且是否滚动到头部或者底部
- jquery判断页面滚动条(scroll)是上滚还是下滚,且是否滚动到头部或者底部
- 如何判断uiscrollview是向上滚动还是向下滚动
- 如何判断uiscrollview是向上滚动还是向下滚动
- jq判断页面滚动条上滚还是下滚
- JS如何判断滚动条是否滚到底部
- JS如何判断滚动条是否滚到底部
- JS如何判断滚动条是否滚到底部
- 001 - JS 如何判断滚动条是否滚到底部
- js判断滚动条是否滚到底部
- JS如何判断滚动条是否滚到底部
- js监听滚动条向上还是向下
- jQuery判断页面滚动方向
- RomanToInteger
- 第八周项目4-逆序排序
- Java集合类
- 排序工具类
- Mac上在终端上解压与压缩
- jquery(js)判断页面滚动条(scroll)是向上滚还是向下滚方向判断
- iOS 获取通讯录的4种方式详解
- 第8周 项目3-顺序串算法
- zookeeper配置中出现Error contacting service. It is probably not running
- 第23课:文本输入框、密码输入框
- SpringMVC+mybatis中Map的使用
- GCD中使用dispatch_after函数延迟处理任务
- redis 存储,java实现类
- Linux USB 驱动开发(三)—— 编写USB 驱动程序