2010-03-15 7 views
1
내가 SWF 파일의 스크롤을 사용하고

.. 내가 작동하지 않는 IE와 FF하지만 웹킷을 위해 일하고 그것을 얻을 ... 모든 브라우저에서 스크롤 마우스 휠을 사용하지 어쨌든이 :swf 파일에서 마우스 휠 스크롤을 비활성화 하시겠습니까?

$(document).ready(function() { 
$("#ebook").hover(
    function() { 
    document.onmousewheel = function(){ 
     return false 
    }; 
    console.log('On'); 
    }, 
    function() { 
    console.log('Out'); 
    document.onmousewheel = function() { 
     return true; 
    } 
    } 
); 

});

답변

1

웹 및 JQuery의 일부 스크립트 덕분에 문제에 대한 다음 Javascript 솔루션을 조합했으며 모든 브라우저에서 정상적으로 작동합니다.
기준 : http://adomas.org/javascript-mouse-wheel/
마우스가 컨테이너 div에 들어가고 마우스 onMouseLeave을 다시 활성화하면 비활성화됩니다.

jQuery(function(){ 
    $("#myFlashContainer").mouseenter(
    function() { 
     if (window.addEventListener) 
     { 
     window.removeEventListener('DOMMouseScroll', wheelOn, false); 
     window.addEventListener('DOMMouseScroll', wheelOff, false); 
     } 
     /** IE/Opera. **/ 
     window.onmousewheel = document.onmousewheel = wheelOff; 
    } 
); 

    $("#myFlashContainer").mouseleave(
    function() { 
     if (window.addEventListener) 
     { 
     window.removeEventListener('DOMMouseScroll', wheelOff, false); 
     window.addEventListener('DOMMouseScroll', wheelOn, false); 
     } 
     /** IE/Opera. **/ 
     window.onmousewheel = document.onmousewheel = wheelOn; 
    } 
); 

    function wheelOff(event) 
    { 
    var delta = 0; 
    if (!event) /* For IE. */ 
     event = window.event; 
    if (event.wheelDelta) { /* IE/Opera. */ 
     delta = event.wheelDelta/120; 
    } else if (event.detail) { /** Mozilla case. */ 
     /** In Mozilla, sign of delta is different than in IE. 
     * Also, delta is multiple of 3. 
     */ 
     // delta = -event.detail/3; 
    } 

    if (event.preventDefault) 
     event.preventDefault(); 
    event.returnValue = false; 
    } 

    function wheelOn(event) 
    { 
    var delta = 0; 
    if (!event) /* For IE. */ 
     event = window.event; 
    if (event.wheelDelta) { /* IE/Opera. */ 
     delta = event.wheelDelta/120; 
    } else if (event.detail) { /** Mozilla case. */ 
     // delta = -event.detail/3; 
    } 
    if (event.preventDefault) 
    { 
     //event.preventDefault(); 
     event.returnValue = true; 
    } 
    return true; 
    } 

}); 
+0

이것은 파이어 폭스/웹킷에서 작동하는 것으로 보이지만 IE 8이 아닙니다 ... 또한 .swf에 포커스를 설정하지 않습니다. – Chris

관련 문제