天道酬勤,学无止境

Javascript 滚动处理程序未触发(Javascript Scroll Handler not firing)

问题

我想要做的就是在滚动DIV时调用一个函数。为了简单起见,我没有指定任何其他内容。 此外,我只关注 DOM 兼容的浏览器,如 Chrome、Safari(不是 IE)。

我的问题是滚动处理程序永远不会被调用。 如果我将scroll替换为click ,则click时它会起作用。 不知何故,滚动不起作用。

请注意:我不能使用 jQuery :(

这是我的代码:

HTML:

<div id="test">--long content--</div>

JS:

   function myFunc() {
        console.log('in myFunc');
    }
    var objTable = document.getElementById("test");

    objTable.addEventListener("scroll", function () {
        myFunc();
    }, false);

小提琴:

http://jsfiddle.net/yymg5/7/

回答1

这是因为窗口滚动而不是 div。 尝试像这样将元素侦听器更改为 div 的父级(在本例中为窗口)。

window.addEventListener("scroll", function () {
    myFunc();
}, false);
回答2

在我的情况下,我遇到了类似的问题。 此代码是正确的,但不起作用,因为,

window.addEventListener("scroll", function () {
    myFunc(); 
}, false);

滚动事件没有触发。 因为我的身体在滚动而不是 documentElement。

我刚刚从 body 标签中删除了height: 100% ,然后滚动事件开始触发。

回答3

就我而言,我有一个height: 100%在我的身体里。 因为我只想在一个特殊的 div 中应用滚动事件。

然后,这解决了问题:

document.querySelector('#myDiv').addEventListener('scroll', () => {
    console.log('scroll event fired!')
 });
回答4

我通过删除height: 100%;修复它height: 100%; 表单htmlbody CSS 选择器。

回答5

发生这种情况是因为您的 div 具有height: 100%height: 100vh 。 在这种情况下,如果您提供高度,滚动事件将自动禁用:

删除该 div 高度,删除其父级、子级的任何高度。 基本上,那个特定的 div 应该滚动而不是它的父级或子级。

那么这应该有效。

const AppWrapper = document.getElementById('app-content');
AppWrapper.removeEventListener('scroll', toggleVisibility);


toggleVisibility = () => {
   console.log('Do your thg');
};

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • javascript将事件处理程序绑定到水平滚动(javascript bind an event handler to horizontal scroll)
    问题 javascript 中是否有一种方法可以将事件处理程序绑定到水平滚动,而不是在用户水平和垂直滚动时触发的通用滚动事件? 我只想在用户水平滚动时触发事件。 我四处寻找这个问题的答案,但似乎找不到任何东西。 谢谢! PS 如果我错误地使用了某些术语,我深表歉意。 我对javascript相当陌生。 更新 非常感谢您的所有回答! 总之,看起来你们都说javascript不支持这,但我可以用这样的东西(使用jQuery)(jsFiddle)来完成这个功能: var oldScrollTop = $(window).scrollTop(); $(window).bind('scroll', function () { if (oldScrollTop == $(window).scrollTop()) //scrolled horizontally else { //scrolled vertically oldScrollTop = $(window).scrollTop(); } });​ 这就是我需要知道的全部。 再次感谢! 回答1 通过我的电话接听,因此目前无法提供代码。 您需要做的是订阅滚动事件。 垂直/水平没有特定的。 接下来,您需要对当前显示区域进行一些测量。 您需要测量 window.clientHeight 和 window.clientWidth。 接下来,获取
  • 当元素变得可见时,jQuery 滚动函数会触发一次(jQuery scroll function fire once when element becomes visible)
    问题 大家好,我在这个脚本上使用了滚动功能,但是每次用户滚动时它都会触发。 我希望它只在用户向下滚动到#ror时触发一次。 我尝试使用fired变量来检查它是否已经被触发,但这似乎不起作用。 我知道有些人之前已经回答过这个问题,但这是我从那里得到了被解雇的解决方案并且不能让它只工作一次的地方。 有人认为他们可以提供帮助吗? $( window ).scroll(function() { var fired = 0; console.log(fired); if(fired == 0){ $('#ror').html(''); $('#ror').goalProgress({ goalAmount: 100, currentAmount: 75, textBefore: 'progress bar', textAfter: '', offset: 10, }); fired=1; } }); 回答1 您需要将被触发的变量移到滚动功能之外。 正如您现在所做的那样,您正在重新初始化已fired变量并将其设置为0每次滚动事件被触发。 var fired = 0; $(window).scroll(function() { console.log(fired); if(fired == 0){ $('#ror').html(''); $('#ror').goalProgress({
  • 浏览器滚动事件在 iOS 和 Android 设备上触发的频率不够高(Browser scroll event doesn't fire often enough on iOS and Android devices)
    问题 我正在使用 jQuery、greensock 和 scollorama 开发一个单页站点。 它并不完全需要支持移动浏览器,但如果它可以在 iPad 上运行就更好了——所以考虑到这一点,我开始在各种手机和平板电脑上进行测试。 我遇到的问题是 scrollorama 依赖于经常触发滚动事件,因为这是动画所吸引的对象 - 但是,当使用触摸屏时,浏览器似乎只在您开始拖动和当您停止时 - 这在 Opera Mini、Chrome、Safari 和 FF Mobile 中是一致的。 为了让我的页面至少部分工作,我需要想出一些能让我更频繁地触发滚动事件的东西 - 有谁知道怎么做? PS 我已经尝试按照 scrollorama 文档的建议使用 iScroll,但是这没有用,反而破坏了动画并使滚动变得不可能 - 我确信插件本身可以工作,但它似乎不适用于我的已经有了。 我正在寻找比插件更简单的东西,只是一个片段来理想地触发滚动事件。 TL; 博士 带有触摸屏的设备似乎只在拖动过程中触发一次或两次 javascript 滚动事件。 我可以在 JS 或 jQuery 中做一个简单的补丁,它会更频繁地触发滚动事件吗? 更新:我试过挂钩触摸事件并触发浏览器滚动,如下所示: $(document).on('touchstart touchend touchmove', function(){ $
  • 无限滚动 javascript 已经被触发(infinite scroll javascript already fired)
    问题 我有一个网站,它加载项目并使用 jquery 无限滚动插件在用户滚动时加载更多项目。 当用户将鼠标悬停在某个项目上时,该项目上方会显示更多的小 div。 简单的。 悬停时显示哪些 div 取决于用户所在的页面,因此他们依赖于了解他们所在的页面。 我使用一个简单的变量来解决这个问题。 我使用以下 js 来决定显示哪些 div。 例如从主页 <script> $(".list_item_image").mouseenter(function () { $(this).children(".gl_view2").show(); $(this).children(".gl_relist").show(); }); $('.list_item_image').mouseleave(function() { $(this).children(".gl_view2").hide(); $(this).children(".gl_relist").hide(); }); </script> div (gl_view2 & gl_relist) 最初加载但display:none; 现在,这个 js 被加载到页脚中以确保它在有问题的 div 之后。 假设我将无限滚动设置为一次更新 15 个项目 对于前 15 个项目,这一切都完美无缺(意味着在 mouseenter 上应该显示/覆盖的 div
  • JavaScript 滚动事件不会在使用 iOS7 的 iPhone 上触发(JavaScript scroll event not firing on iPhone with iOS7)
    问题 我对图像使用延迟加载技术。 每当视口中出现新图像时,将设置 src 属性以便可以加载图像。 这种技术已经工作多年,直到iOS7问世。 它在常规综合浏览量下运行良好。 但是当您关闭浏览器时,稍等片刻,也许打开其他一些应用程序,然后再回来它就不再工作了。 有时在选项卡之间切换也会杀死功能。 $(window).bind('scroll resize', function () { checkImages(); }); 有关完整演示,请参阅 JSFiddle:http://jsfiddle.net/NZqGL/1/ 我知道 JavaScript 执行因非活动应用程序和浏览器选项卡而暂停。 但是,不受约束的事件对我来说是新的。 它也很难测试,因为行为是非常不可预测的。 有时需要 2 秒的不活动才能损坏,有时它会继续工作。 在 iOS 7.0.4 上测试 2014 年 2 月 12 日更新:这是 iOS 7.0 中已确认的错误,Apple 已确认这将在 iOS 7.1 中修复。 回答1 在这里使用 touchend 事件是一种可接受的解决方法。 松开手指和滚动事件之间存在延迟。 当您在屏幕上快速移动手指时,松开手指后滚动会继续一段时间。 iOS 有另一个错误,它会在页面仍在滚动时阻止执行 JavaScript。 因此,touchend 事件将在实际滚动后触发(而不是在您松开手指的那一刻
  • 如何在不将onscroll处理程序附加到每个容器的情况下捕获页面上的所有滚动事件(How to capture all scrolling events on a page without attaching an onscroll handler to every single container)
    问题 考虑以下网页: <html> <body onscroll="alert('body scroll event')"> <div style='width:200px;height:200px;overflow:auto' onscroll="alert('div scroll event')"> <div style='height:400px'> </div> </div> </body> </html> 此html用滚动条创建一个div。 如果移动滚动条,则会触发div元素上的onscroll事件。 但是,不会触发主体上的onscroll事件。 这是预料之中的,因为W3C声明元素onscroll事件不会“冒泡”。 但是,我正在开发一个客户端Web框架,该框架需要随时滚动页面ANY元素上的滚动条。 如果onscroll气泡,这将很容易做到,但是不幸的是事实并非如此。 还有其他方法可以检测整个页面上的onscroll事件吗? (目前,我主要集中在Webkit上,因此特定于Webkit的解决方案就可以了...) 这是我尝试过的一些方法: 捕获DOMAttrModified (似乎不为移动滚动条触发。) 使用DOM观察者(滚动条似乎也不会触发) 将onscroll事件类型更改为冒泡(似乎不可能)
  • 滚动事件上的jQuery未触发(jQuery on scroll event not firing)
    问题 我有一个有很多 ajax 操作的应用程序。 所以几乎我所有的事件都是这样处理的: jQuery( 'body' ).on( 'click', '#id', function ( event ) { // Do something }); 代替: jQuery( '#id' ).click( function() { // Do something }); 这适用于所有事件,除了像这样的滚动事件不起作用: jQuery( 'body' ).on( 'scroll', '#id', function ( event ) { // Do something }); 使用鼠标滚轮事件效果很好。 有什么问题还是没有滚动事件? 回答1 问题是scroll事件不会使 DOM 冒泡,因此使用live() 、 on()或delegate()将不起作用。 您必须自己将事件处理程序绑定到动态创建的元素。 参考 回答2 不确定这是否有帮助 $(window).on('scroll', function(){ $("#head").html($(this).scrollTop()); }); JSfiddle 回答3 为了能够触发 DOM 元素的滚动事件,你应该把它放在你的 css 中: selector { overflow-y: scroll }
  • JQuery 滚动而不触发滚动(JQuery scroll without triggering on scroll)
    问题 我使用以下 javascript 来制作“粘性”导航,当用户滚动浏览它时,导航固定到屏幕顶部。 这段代码工作正常,尽管当元素被设置为粘性并且元素的位置设置为“固定”时,主体中所有以下元素的位置“跳起”以占据从更改元素而产生的间隙相对于固定,并产生轻微的“颠簸”效果。 为了解决这个问题,我尝试在元素更改为固定时向滚动 y 位置添加偏移量,但这会通过再次触发滚动功能导致循环,页面滚动到页面底部。 所以我的问题是 - 如何在下面的函数中为滚动位置添加偏移量? 即,如何在 $(window).scroll 函数中设置滚动位置,而不触发 $(window).scroll 函数进入循环? $(window).scroll(function (event) { var y = $(this).scrollTop(); var top = $('#main-navigation').offset().top; if (y >= top) { $('#navigation').addClass('fixed'); } else { $('#navigation').removeClass('fixed'); } }); 很感谢任何形式的帮助 回答1 通用解决方案 这是防止循环的通用解决方案: var lastScrollTop = 0; var defaultScrollHandler =
  • jQuery-滚动停止上的绑定事件(jQuery - bind event on Scroll Stop)
    问题 如果我想在滚动页面时绑定一个事件,我可以使用scroll(); 。 但是,当scroll()结束时如何触发? 我想重现一下: $(window).scroll(function(){ //do somenthing }); $(window).scrollSTOPPED(function(){ //--> when i'm scrolling then i stop to scrolling (so NOT when page scrollbar is at the end top or bottom :) //do somenthing else }); 有任何想法吗? 回答1 小巧的jQuery方式 $.fn.scrollStopped = function(callback) { var that = this, $this = $(that); $this.scroll(function(ev) { clearTimeout($this.data('scrollTimeout')); $this.data('scrollTimeout', setTimeout(callback.bind(that), 250, ev)); }); }; 从上一个滚动事件开始250毫秒后,这将调用“ scrollStopped”回调。 http://jsfiddle.net/wtRrV
  • 滚动事件未在指令内触发-angular.js(Scroll event is not fired inside directive - angular.js)
    问题 我陷入了问题。 我有一个用于无限滚动的指令,我在其中监听scroll事件。 问题是,仅当我绑定到$window时才触发滚动事件: angular.element($window).bind('scroll', function () { console.log('Gogo!'); //works! }); element.bind('scroll', function () { console.log('Gogo!'); //doesn't work... :((( }); 指令位于ng-view我发现了这个问题,看起来与我的问题非常相似-绑定到ng-view内的指令中的事件不起作用 有人知道如何解决这个问题吗? 我的指令: directives.directive('scrolly', function () { return { restrict: 'A', link: function (scope, element, attrs) { var raw = element[0]; element.bind('scroll', function () { if (raw.scrollTop + raw.offsetHeight > raw.scrollHeight) { scope.$apply(attrs.scrolly); } }); } }; }); 我的看法:
  • Bootstrap 4 activate.bs.scrollspy 事件未触发(Bootstrap 4 activate.bs.scrollspy event is not firing)
    问题 我正在使用 Bootstrap v4.0.0 我已经包含了必要的 JavaScript 文件(jQuery、popper 和 Bootstrap)和必要的 CSS 文件。 这是 HTML: <body data-spy="scroll" data-target="#my-navbar-collapse" data-offset="100"> <!-- ... --> <div class="collapse navbar-collapse" id="my-navbar-collapse"> <ul class="nav navbar-nav" role="tablist"> <li class="nav-item"> <a class="nav-link" href="#one">One</a> </li> <li class="nav-item"> <a class="nav-link" href="#two">Two</a> </li> </ul> </div> <!-- ... --> <section id="one"> Content. </section> <!-- ... --> <section id="two"> More content. </section> <!-- ... --> <script> $(function() { // As per
  • 如何在惯性滚动期间同步两个元素的滚动偏移(How to synchronize the scroll offset of two elements during inertial scrolling)
    问题 我需要使一个元素的滚动偏移量与另一个元素(实际上是窗口)保持同步,并且在 Mobile Safari (iPad) 上滚动的惯性“滚动”阶段遇到了问题。 我有几个带有position:fixed; overflow:hidden的 div position:fixed; overflow:hidden position:fixed; overflow:hidden ,我需要保持他们的滚动偏移与窗口的同步(意味着整个身体滚动。)通常我会这样编码(jQuery): var $win = $(window), $div1 = $(...) $win.scroll(function() { $div1.scrollTop($win.scrollTop()) }) 但是在 iPad 上测试界面,我注意到 div 在触摸阶段没有更新,当你用手指拖动虚拟页面时,也没有在惯性阶段,当你放手时页面变慢到一站。 我通过为touchmove事件和scroll事件注册处理程序来解决拖动阶段的问题。 但是我找不到解决惯性阶段问题的方法。 div 保持静止(并缓慢地与页面的其余部分不同步),直到惯性运动完全停止,此时滚动事件最终被触发并跳到位置。 这是一个工作演示。 尝试在 iPad 上滚动它以查看“惯性滚动”问题。 不幸的是,由于 iframe 滚动时 iPad 的奇怪行为,我无法让它在
  • JavaScript高级程序之13——事件
    第13章 事件 1. 事件流 事件流:描述页面接受事件的顺序事件冒泡流 事件由目标元素接受,向上传播至document(部分浏览器会到window) 事件捕获流 事件由document对象(规范要求,但浏览器还是从window对象开始捕获)接收,向下传播搭配目标 DOM事件流的三个阶段 捕获阶段不接受事件(规范要求)实际上主流浏览器都会在捕获阶段触发事件对象上的事件 2. 事件处理程序(事件侦听器) 概念 响应事件的函数就是事件处理程序事件处理程序名字以on开头为事件指定处理程序的方式:HTML事件、DOM0级事件、DOM2级事件事件处理程序代码执行时有权访问全局作用域中的任何代码 HTML事件处理程序 使用HTML特性指定事件处理程序 <div onclick="alert('莫挨老子!')">点我</div> 也可调用脚本函数 可通过event变量直接访问事件对象 可通过this访问目标元素(若使用箭头函数,则this指向window) /* <div οnclick="handler">点我</div> */ function handler(e){ console.log(this == e.currentTarget); // true } 缺点 时差问题:执行函数未解析前触发事件,会报错。解决方案是使用try
  • 当附加到 div 时,scroll() 事件不会触发(scroll() event not firing when attached to a div)
    问题 <div class="row"> <div class="col-md-8" id="homeview-story"></div> <div class="col-md-4" id="homeview-stream"> <div id="log"></div> </div> </div> #homeview-story { overflow: scroll; width: 72%; height: 800px; } #homeview-stream { overflow: scroll; width: 28%; height: 800px; } $(document).ready(function() { $('#homeview-story').scroll(function() { $("#log").append("<div>Handler for .scroll() called.</div>"); }); }); 目标是分别为homeview-story和homeview-stream实现无限滚动以加载相应的数据。 滚动功能适用于窗口 obj ( $(window).scroll ),但不适用于特定的 div。 回答1 问题是, #homeview-story没有溢出,所以它没有滚动。 首先,它应该有一些大于滚动的内容,这是您的代码中缺少的。 这是一个演示,其中
  • 移动Chrome在滚动时触发调整大小事件(mobile chrome fires resize event on scroll)
    问题 我在galaxy s4,android 4.2.2上使用chrome移动浏览器,由于某种原因,每次向下滚动页面时,都会触发一个resize事件,该事件由jquery.cycle2幻灯片的图像缩放验证。 知道为什么会这样吗? 回答1 出于好奇,我试图重现它,如果正确,这是由导航镶边栏引起的。 当您向下滚动并chrome隐藏浏览器导航栏时,会产生窗口大小调整,但这是正确的,因为在那之后,由于浏览器导航栏剩余的可用空间,我们的窗口大小更大。 相关文章:https://developers.google.com/web/updates/2016/12/url-bar-resizing 回答2 这听起来很奇怪,但是我在其他浏览器中已经看到过。 您可以像这样解决此问题。 var width = $(window).width(), height = $(window).height(); 然后您可以在调整大小事件处理程序中执行此操作。 if($(window).width() != width || $(window).height() != height){ //Do something } 我不知道您的功能范围以及所有这些,但是您应该从中了解要点。 回答3 我不知道它仍然很有趣,但是我的解决方案是:) var document_width, document_height; $
  • iOS6 JavaScript touchmove 事件通过垂直滚动之后 jQuery 动画不触发(iOS6 JavaScript touchmove event pass through vertical scroll afterwards jQuery animate does not fire)
    问题 我有一个带有 javascript touchmove 事件侦听器的 div,它在 iOS6 Mobile Safari 上水平滚动 div 内的图像。 我想允许页面的垂直滚动冒泡到浏览器,但是当发生这种情况时,jQuery.animate 不再起作用。 我在 https://gist.github.com/4047733 上发布了演示问题的代码的简化版本 我为重现问题而采取的步骤是: 向左/向右滑动图片并注意它如何动画回到左边缘触摸图片并向上/向下滚动页面重复向左/向右滑动并注意图片没有动画回到左边缘。 在没有 e.preventDefault 的情况下发生 touchmove 后,jQuery 动画似乎失败 这是上面的 gist 链接中准备好的 jQuery 文档中的 javascript var el = document.getElementById("swipebox"), $slider = $('#swipebox').find('img'), startX, startY, dx, dy, startLeft, animateH = false, animateV = false; var onTouchStart = function(e) { startLeft = parseInt($slider.css('left'), 10) || 0
  • JavaScript高级程序设计(第3版)学习笔记 第13章
    第13章 事件 1.事件:文档或浏览器窗口中发生的一些特定的交互瞬间,可以使用侦听器(或处理程序)来预订事件,以便事件发生时执行相应的代码。 2.事件流:从页面中接收事件的顺序: 事件冒泡(event bubbling):开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点(文档)。事件捕获(event capturing):document 对象首先接收到 click 事件,然后事件沿 DOM 树依次向下,一直传播到事件的实际目标。“DOM2级事件”规定的事件流包括三个阶段:事件捕获阶段、处于目标阶段和事件冒泡阶段。首先发生的是事件捕获,为截获事件提供了机会。然后是实际的目标接收到事件。最后一个阶段是冒泡阶段,可以在这个阶段对事件做出响应。 3.事件处理程序:响应某个事件的函数。 //跨浏览器的事件处理程序,视情况分别使用 DOM0 级方法、DOM2 级方法或 IE 方法来添加事件。 var EventUtil = { //添加事件 addHandler: function(element, type, handler){ if (element.addEventListener){ //DOM2 级方法 element.addEventListener(type, handler, false); } else if (element
  • 滚动事件不会在页面重新加载时触发(Scroll event not firing on page reload)
    问题 当用户滚动时,我使用以下代码向站点标题添加一个类: $(window).scroll(function() { if ($(this).scrollTop() > 170){ $('.header').addClass('sticky'); } else{ $('.header').removeClass('sticky'); } }); 这在用户最初滚动但在页面刷新时不起作用时起作用。 据我了解,代码仅在用户滚动时运行,并且在页面刷新时不知道页面处于中途。 所以我的问题是,如何更改此 JS 以使其在页面加载和页面中间刷新时运行? 回答1 据我了解,代码仅在用户滚动时运行,并且在页面刷新时不知道页面处于中途。 恩,那就对了。 解决方案很少。 我建议两个: 1) 将在专用函数中修复标头的回调分开: function FixHeader() { if ( $( window ).scrollTop() > 170 ) { $( '.header' ).addClass( 'sticky' ); } else { $( '.header' ).removeClass( 'sticky' ); } } 将回调绑定到滚动事件: $( window ).scroll( FixHeader ); 最后: 如何更改此 JS 以使其在页面加载和页面中间刷新时运行。 让回调在 DOM
  • 60fps:如何正确使用 requestAnimationFrame?(60fps: How to use requestAnimationFrame the right way?)
    问题 在我的网站上,当相关内容框可见时,应将其动画化到视口中。 我试图通过 CSS 和 JavaScript 使我的动画尽可能高效,以免对滚动性能产生负面影响。 虽然 CSS 部分很简单(使用转换、将更改、包含),但我在何时使用window.requestAnimationFrame有点挣扎。 我应该仅在将类添加到元素时还是在调用函数isScrolledIntoView或什至在isScrolledIntoView内部时才使用它,当元素位置被测量时? var percentVisible = 0.25; window.addEventListener('scroll', function(){ relatedContent(related, percentVisible); } ) function relatedContent(r, pV){ window.requestAnimationFrame(function() { if(isScrolledIntoView(r, pV)){ window.requestAnimationFrame(function(){ r.classList.add("visible"); }, r) } }, r) } function isScrolledIntoView(el, percentV) { var elemTop
  • 移动浏览器中 $(window).scroll 事件的触发率(Firing rate of $(window).scroll event in mobile browser)
    问题 我使用$(window).scroll()事件为我的元素添加动画。 在桌面浏览器中,鼠标滚动时会触发该事件。 在移动浏览器中,当拖动和触摸结束时触发该事件。 有没有办法在触摸拖动(向下/向上scroll()触发scroll()事件? 示例代码: $(window).scroll(function(){ console.log('fired'); }); 最后,这是一个演示页面(无法在移动设备中很好地使用 JSFiddle,因此我将其托管在其他地方)。 请在桌面和移动浏览器上试用。 为了您的方便,这里是QR码: 回答1 一个多星期以来,我一直在移动和触摸设备上最流行的浏览器上实时捕捉滚动! 我尝试了很多方法,比如放置setInterval或requestAnimationFrame循环或捕获scroll或touchmove或网络工作者或其他任何方法。 我可以告诉你,在 iOS 4 - 7 上没有任何效果,浏览器只会冻结任何脚本执行。 Android 浏览器、移动 Chrome 或 Firefox 或 Dolphin 跟踪scroll良好,因此您可以在那里处理滚动动量。 最新的 Internet Explorer 移动版、Blackberry、Opera 移动版和大多数 Symbian 浏览器也可以跟踪scroll 。 然而,有一种在 iOS 上做事的绝妙方法。 这家伙使用