0

监听滚轮事件进行整屏翻动动画,我用mac本的触摸板,当滑动的快的时候,会多次触发我的动画,但是我的每个滚动都有开关,动画开始,开关关闭;动画完毕,开关打开,开始接受下一个滚动动画;在监听滚轮滚动事件时,我只是监听了他的滚动方向,返回值为正负,来判断是向上还是向下滑,并没有监听他的滚动速度,即使mac本上的滚动速度不恒定,但正负是不变的 ,我只监听了他的正负,但出现以上问题,不知道问题在哪?正常浏览器没有问题。下面是监听滚轮滚动方向兼容各浏览器的函数,求大神解答

window.onload = function () {
        var oDiv = document.getElementById('div1');
 
        function onMouseWheel(ev) {/*当鼠标滚轮事件发生时,执行一些操作*/
            var ev = ev || window.event;
            var down = true; // 定义一个标志,当滚轮向下滚时,执行一些操作
                down = ev.wheelDelta?ev.wheelDelta<0:ev.detail>0;
            if(down){
                oDiv.style.height = oDiv.offsetHeight+10+'px';
            }else{
                oDiv.style.height = oDiv.offsetHeight-10+'px';
            }
            if(ev.preventDefault){/*FF 和 Chrome*/
                ev.preventDefault();// 阻止默认事件
            }
            return false;
        }
        addEvent(oDiv,'mousewheel',onMouseWheel);
        addEvent(oDiv,'DOMMouseScroll',onMouseWheel);
     }
    function addEvent(obj,xEvent,fn) {
        if(obj.attachEvent){
            obj.attachEvent('on'+xEvent,fn);
        }else{
            obj.addEventListener(xEvent,fn,false);
        }
    }
2017-08-24 提问
2 个回答
2

javascript - fullpage.js滑轮上下滚动较快的时候屏幕就会乱窜。 - SegmentFault 思否
https://segmentfault.com/q/10...

这个问题基本能解决, 但还不够完美, 可以看看

0

我现在也遇到了这个问题。也在找答案。你找到答案了吗

该答案已被忽略,原因:

撰写答案

推广链接