滚动差异

Scroll Diffrence

本文关键字:滚动      更新时间:2023-09-26

我的问题很简单。有没有办法检测滚动到页面是由于javascript或鼠标滚动造成的。我真的需要确定差异。

有没有人可以帮助我找出用户鼠标滚动之间的区别,或者是由于jQuery或java脚本滚动事件造成的

我正在开发一个共同浏览应用程序,因此在多个用户之间传输事件。我能够管理除滚动之外的所有事件。如果记录了从代理滚动.html,它允许系统无限滚动。您可以通过打开 URL 182.71.103.93/screen2/client23122014.html 然后打开 182.71.103.93/job_tree 来查看该应用程序

不完全是你要问的,但这会检测鼠标滚轮事件,因此如果它不是鼠标滚轮事件,则由 JS 引起。您可以在 JS 中使用"mousewheel"(Firefox 中的"DOMMouseScroll")事件。例:

// Chrome/Safari/Opera/New IE
$('html','body').addEventListener("mousewheel", MouseWheelHandler, false);
// Firefox
$('html','body').addEventListener("DOMMouseScroll", MouseWheelHandler, false);
// Old IE
$('html','body').addEventListener("onmousewheel", MouseWheelHandler, false);
var MouseWheelHandler = function(e) {
  var e = window.event || e; //IE support
  var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail)));
  // Do whatever with the delta value
}

Termhn给出的答案已经足够好了,但如果有人坚持与我类似的情况,那么你可以使用全局javascript变量

我以某种方式做到了

对于客户端/用户端

var emit_scroll_event=true;
socket.on('agentwindowscroll',function (msg){emit_scroll_event=false;  jQuery(document).scrollTop(msg);   });
//window scroll logic goes here
jQuery(document).scroll(function()
{
    var scrollFromTop=jQuery(document).scrollTop();
    if(emit_scroll_event)
    {
    socket.emit('windowscroll', scrollFromTop);
    }
    emit_scroll_event=true;
});

对于代理端,我们可能会使用类似的代码

var emit_scroll_event=true;
//agent window scroll logic goes here
jQuery(document).scroll(function()
{
    var scrollFromTop=jQuery(document).scrollTop(); 
    if(emit_scroll_event)
    {
    socket.emit('agentwindowscroll', scrollFromTop);
    }
    emit_scroll_event=true;
});
 //responding to client scroll
  socket.on('windowscroll',function (msg){emit_scroll_event=false;   jQuery(document).scrollTop(msg);   });

注意:这不是整个代码。这只是我使用的代码的一部分,它帮助我解决了我的问题。它不适用于普通的javascript。它与 Node js 一起使用 Scoket.io 模块