为了账号安全,请及时绑定邮箱和手机立即绑定

firefox下监听滚动条的兼容问题

firefox下监听滚动条的兼容问题

当年话下 2018-12-20 18:15:32
 window.onmousewheel = document.onmousewheel=function (e) {            console.log('aaa')            var valueoffsetT = $('.value-box').offset().top;            var ST = $('body').scrollTop();            var windowH = $(window).height();            console.log(valueoffsetT,ST,windowH)            var courseoffsetT = $('.course-box').offset().top;            var ST = $('body').scrollTop();            var windowH = $(window).height();            if (valueoffsetT - ST - windowH < -40) {                $('.value-box').show();                $('.value-box').addClass('fadeInUp ');            }            if (courseoffsetT - ST - windowH < -15) {                $('.course-box').show();                $('.course-box').addClass('fadeInUp ');            }        };用$(window).scroll在火狐下不行 上面这么写也不行 怎么写才能更好的兼容呢
查看完整描述

1 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

火狐下面的滚动条滚动事件是:

obj.addEventListener('DOMMouseScroll',fnCallBack,false);


分享你一个封装好的函数:


function addEvent(obj,sEv,fn){

    if(obj.addEventListener){

        obj.addEventListener(sEv,fn,false);

    }else{

        obj.attachEvent('on'+sEv,fn);

    }

}

function addWheel(obj,fn){

    

    function fnWheel(ev){

        var oEvent=ev || event;

        var bDown=false;


        bDown=oEvent.wheelDelta?oEvent.wheelDelta<0:oEvent.detail>0;

        

        fn && fn(oEvent,bDown);

        oEvent.preventDefault && oEvent.preventDefault();

        return false;

    }

    

    if(window.navigator.userAgent.indexOf('Firefox')!=-1){

        obj.addEventListener('DOMMouseScroll',fnWheel,false);    

    }else{

        addEvent(obj,'mousewheel',fnWheel);

    }

}

使用也很简单:


addWheel(obj,function(ev,down){

    //TODO

})

jq中,我印象是默认没有封装滚轮的,要不你就找插件,要不就用原生吧。简单、粗暴。


查看完整回答
反对 回复 2019-01-13
  • 1 回答
  • 0 关注
  • 496 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信