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)在手机端失效