firefox怎么监听鼠标滚轮滚动,这个兼容性问题怎么解决?

要实现的效果是在ie,chrome,firefox下监听滚轮触发事件。
源码:

window.onscroll=function(e){  
var e =e || window.event;       
var scrolltop=document.documentElement.scrollTop||document.body.scrollTop;

var box = $('#qa-head');
if(document.body.scrollTop >= 400){
    box.addClass('fixed-head');
}else{
    box.removeClass('fixed-head');
}
}

模拟onscroll效果

if(document.addEventListener){ 
document.addEventListener('DOMMouseScroll',scrollFunc,false); 
}
window.onmousewheel=document.onmousewheel=scrollFunc;//IE/Opera/Chrome
var scrollFunc=function(e){
    e=e || window.event;
    var t1=document.getElementById("qa-head");
    if(t1.detail >= 400){
        t1.addClass('fixed-head');
        console.log('firefox');
    }else{
        t1.removeClass('fixed-head');
        console.log('firefox lll');
    }
}

但是火狐模拟onscroll的这段代码控制台都没有输出,是什么原因哪里错了?

函数表达式声明的函数在执行到函数体之前都是不可用的

最大的問題應該是你先使用了函數才聲明吧….

var scrollFun c= function(e){
  e = e || window.event
  var t1 = document.getElementById("qa-head")
  if(t1.detail >= 400) {
    t1.addClass('fixed-head')
    console.log('firefox')
  } else {
    t1.removeClass('fixed-head')
    console.log('firefox lll')
  }
}

window.onmousewheel = document.onmousewheel = scrollFunc; // IE/Opera/Chrome

if(document.addEventListener) { 
  document.addEventListener('DOMMouseScroll',scrollFunc,false)
}

  • 自定义鼠标经过图片提示效果问题
  • 关于表达式调用函数的问题
  • 我画的SVG线条为什么不能贴页面顶部,而是出现在页面中间?
  • 在js中关于return this的问题
  • echart3.0 – echarts-master
  • dom.onclick==null,可是能触发事件,咋回事?
  • datepicker如何直接显示插件?
  • javascript的点击跳转之后,怎么添加样式
  • vue 移动端的input 数字输入优化
  • 字典统计分析,最佳时间复杂度能到达多少
  • 页面ajax加载时,出现旋转的圈,应该写在ajax代码的什么位置?