[英]jQuery Mobile Scroll Events
使滚动事件系列发挥作用时存在问题(根本不只是设计上的问题)。 一直在浏览所有与此相关的文章,代码建议和其他帮助主题,但是没有人可以解释为什么这个示例根本不起作用:
基本页面html:
<!DOCTYPE html>
<html>
<head>
<title>JQM Test</title>
<script src="/inc/jQuery/jquery-1.11.3.js"></script>
<script src="/inc/jQuery/mobile/jquery.mobile-1.4.5.min.js"></script>
<script type="text/javascript">
var scroll = 0;
$(function() {
$(window).on('scroll',function(e) {
console.log("Scrolled - "+scroll);
scroll++;
});
});
</script>
</head>
<body>
Contents blah blah.
</body>
</html>
好的,因此如果您复制粘贴,包含文件需要替换,并且版本可能不同。 Anwyays进入行为。 当我取出jquery.mobile包含项时,脚本将按预期工作,只要滚动位置发生变化,便会将滚动注释记录到控制台中。
当我包含jquery.mobile时,它会在页面加载时触发一次,仅此而已。 尝试在jquery脚本部分,scrollstart和scrollstop事件中更改文档/窗口。 甚至尝试使用本机javascript将偶数显式绑定到滚动。 同样的结果,在不包含jqm的情况下一切正常,在包含jqm时失败。
有人可以向我解释为什么JQM东西破坏了滚动功能吗?
编辑:
尝试了以下JS函数,但结果完全相同(该函数直到添加了JQM包含)
$(document).on("scrollstart",function(){
****
$(document).on("scrollstop",function(){
****
$(window).on("scrollstart",function(){
****
$(window).on("scrollstop",function(){
****
$(document).scrollstart(function(){
****
$(document).scrollstop(function(){
****
$(window).scrollstart(function(){
****
$(window).scrollstop(function(){
****
window.onscroll=myFunction;
document.onscroll=myFunction;
window.attachEvent("scroll",myFunction,false);
document.attachEvent("scroll",myFunction,false);
尝试这个 :
$(function() {
$(window).on('scroll',function(e) {
console.log("Scrolled - "+scroll);
window.scrollBy(100, 0); // for scroll horizontally.
});
});
在@FraserCrosbie的帮助下,原来我只是忽略了一点CSS: https ://jsfiddle.net/nzwodyte/4/
CSS被分配给[data-role=page]{
元素,并且具有height: 100%
和position: relative
标记。
没意识到JQM在没有声明上述标记的情况下就将data-role =“ page”分配给了HTML中的元素。
因此,对于存在相同问题的任何人,请检查页面的高度和位置CSS(从调试的角度出发,而不是原始DOM中)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.