2012-03-29 3 views
0

오버플로 된 내용이있는 페이지의 미리 정의 된 모든 요소에 스크롤 막대를 추가하는 사이트에서 Javascript 스크롤러 클래스를 사용하고 있습니다. 클라이언트는 최근 이러한 요소 중 하나에 iframe이 포함되어있어 대화 형 콘텐츠를이 영역에 쉽게 추가 할 수 있도록 요청했습니다. (iframe은 알고 있지만이 작업의 하청 업체입니다.별로 그리지 않습니다.) 다행히도 iFram의 콘텐츠는 동일한 도메인에서 가져 오므로 콘텐츠가로드되면 iframe의 크기를 조정할 수 있습니다. 차례로 자바 스크립트 스크롤바가 실행됩니다. 결국 크롬에서 아름답게 작동합니다.Iframe이 마우스 이벤트를 훔친다

탐색기와 Firefox에서 iframe은 마우스가 iframe 위에있는 즉시 마우스 이벤트를 훔치는 것으로 보입니다. 따라서 마우스 휠 이벤트는 더 이상 작동하지 않습니다. 스크롤 핸들을 드래그하여 스크롤하거나 스크롤 트랙의 아무 곳이나 클릭 할 수는 있지만 마우스 휠을 사용하면 아무런 효과가 없습니다. 그것은 심지어 행사를 해고하지 않습니다.

다른 사람들도 비슷한 문제를 경험했지만 해결 방법을 찾지 못했습니다. 누구든지 어떤 제안이 있습니까? http://hastebin.com/xisidogiju.coffee

내가 얻을 수있는 모든 도움을 주셔서 감사합니다 :

여기에 좋은 측정을위한 스크롤 클래스입니다!

+0

멋진 링크, 웃음. 부패 붕괴가 최고입니다. – RaisingAgent

답변

1

마우스 이벤트는 창에 연결되며 iframe은 창입니다. 그 기적은 웹킷 브라우저에서 작동합니다.

마우스가 들어갈 때 부모 창과 iframe 사이에 eventListener 및 eventHandler를 전달해야합니다.

iframe간에 객체를 전달하는 것에 대한 참조 : http://www.dyn-web.com/tutorials/iframes/refs.php.

0

이 문제를 극복 할 수있었습니다. 아래 설명 된 jsfiddle에서 언급 한 솔루션을 확인할 수 있습니다. 여기

http://jsfiddle.net/6nnMV/358/

, 나는 마우스 스크롤을들을 수있는 이벤트를 만들었으며 iframe을에 이벤트를 바인더 제본했다.

그런 다음

$(element).scrollTop($(element).scrollTop+(number of pixels)); 

액세스하는 iframe이 같은 도메인에있는 경우에만 작동합니다 같은 scrollTop 속성을 사용하여 부모 창 또는 요소를 스크롤 할 수 있습니다.

관련 문제