document.addEventListener('scroll',"事件名",false)在手机端失效

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了document.addEventListener('scroll',"事件名",false)在手机端失效相关的知识,希望对你有一定的参考价值。

参考技术A 在实现手机端分页加载问题的时候 滑动完第一页无法加载第二页,但pc上却没问题;

首先 -- document.addEventListener('scroll', this.scrollHandle, false); 里的scroll 改成 touchmove,改完后 你在手机上滑动屏幕就可以触发绑定的方法了。
其次 -- 如果改成了touchmove还是不可以 看看是不是 document.documentElement.scrollTop 这个出的问题:这个有兼容性问题在有的浏览器下会一直获取的是0 这样的话就无法触发 this.loadData(); 请求数据的这个方法 所以就无法加载第二页;
注:以上两步是我处理这个bug的关键

以下这篇文章 对 document.body.scrollHeight 等 兼容性解释的很好很权
https://blog.csdn.net/jack_zengzhen/article/details/79013841

document.addEventListener("touchmove", preventBehavior, false); - 阻止我使用溢出:滚动; - 变通?

【中文标题】document.addEventListener("touchmove", preventBehavior, false); - 阻止我使用溢出:滚动; - 变通?【英文标题】:document.addEventListener("touchmove", preventBehavior, false); - prevents me using from using overflow: scroll; - work around? 【发布时间】:2012-05-30 10:52:47 【问题描述】:

我用phonegap搭建了一个ios app,这样就不能移动窗口phonegap用document.addEventListener("touchmove", preventBehavior, false);

这很好......但它也阻止我在一段文本上使用 css overflow:scroll

有没有一种工作方式可以让我同时让这两种方法都正常工作?有没有办法我可以在 js 之后加载 css 部分以便它覆盖它?还是我可以将document.addEventListener("touchmove", preventBehavior, false); 应用于正文而不是其内容?

【问题讨论】:

仅供参考 window.addEventListener 'touchmove' - 不是文档 【参考方案1】:

发现 phonegap / cordova 只能解决 dosnt 要求您首先使用 document.addEventListener("touchmove", preventBehavior, false); - 进入您的 xcode 项目.. porject 文件 > 支持文件 > cordova.plist 然后在顶部将“UIWebViewBounce”更改为没有。

来自here

【讨论】:

链接损坏,请修复【参考方案2】:

我认为你可以在“touchmove”时检测到目标元素:

document.addEventListener("touchmove", function(event) 

    if (event.target.tagName != "TEXTAREA")  // Element that you don't want to be prevented default event.

          event.preventDefault();
    
);

【讨论】:

我是否使用 css 钩子定义元素“TEXTAREA”? IE。 #详细内容【参考方案3】:

要捕获您可以编写的所有滚动像素

document.addEventListener("touchStart",<method>,true/false)
document.addEventListener("touchMove",<method>,true/false)
document.addEventListener("touchEnd",<method>,true/false) 

你是否在 body load 函数中添加了 touchEventListener ?如果你写 event.preventDefault();它将终止事件行为,这就是您的 overflow:scroll 属性不起作用的原因。

【讨论】:

【参考方案4】:

在上个版本cordova.plist中被config.xml改了,然后设置

“UIWebViewBounce”值=“假”

【讨论】:

以上是关于document.addEventListener('scroll',"事件名",false)在手机端失效的主要内容,如果未能解决你的问题,请参考以下文章

使用 jQuery Mobile 和 $(document).ready 与 PhoneGap Build 和 document.addEventListener("deviceready&

jQuery(document).on("keydown",...) 有效,但不是 document.addEventListener("keydown",..

document.addEventListener("touchmove", preventBehavior, false); - 阻止我使用溢出:滚动; - 变通?

document.addEventListener('scroll',"事件名",false)在手机端失效

jQuery 等效于 JavaScript 的 addEventListener 方法

DOMContentLoaded的addEventListener()无法正常工作