我的问题很直接。有没有办法检测到页面的滚动是由于javascript或鼠标滚动。我真的需要找出差异。
有没有人可以帮我弄清楚用户鼠标滚动之间的区别,或者是由于jQuery或java脚本滚动事件
我正在开发一个浏览应用程序,因此可以在多个用户之间进行事件转移。我能够管理除滚动之外的所有事件。如果记录从agent.html滚动,它可以让系统无限滚动。您可以通过打开网址 182.71.103.93/screen2/client23122014.html 然后 182.71.103.93/job_tree
来查看该应用答案 0 :(得分:1)
不完全是你要问的但是这会检测鼠标滚轮事件,因此如果它不是鼠标滚轮事件,它是由JS引起的。您可以使用"鼠标滚轮" (" DOMMouseScroll"在Firefox中)事件在JS中。示例:
// 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
}
答案 1 :(得分:0)
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。它与带有Scoket.io模块的Node js一起使用