>웹 프론트엔드 >HTML 튜토리얼 >it_HTML/Xhtml_웹페이지 제작에 내장된 html과 flash에 모두 존재하는 스크롤바 분석 및 처리방법

it_HTML/Xhtml_웹페이지 제작에 내장된 html과 flash에 모두 존재하는 스크롤바 분석 및 처리방법

WBOY
WBOY원래의
2016-05-16 16:40:341289검색

개발을 할 때 이런 상황에 자주 직면하게 됩니다.
a.swf가 웹 페이지에 추가되고, a.swf와 html 페이지에 동시에 스크롤 막대가 있고, 프로젝트 관리자가 BT 요구 사항을 제기했습니다---프로세스 a. swf 마우스를 스크롤하면 html 페이지가 스크롤되지 않습니다.
어떻게 해야 할까요?
방법 11. a.swf 스크롤 영역: JS에게 브라우저 마우스 스크롤 모니터를 제거하라고 지시합니다.
2. 마우스가 a.swf 스크롤 영역 밖으로 이동할 때: JS에게 브라우저 마우스 스크롤 모니터를 추가하라고 지시합니다.
3. a.swf의 wmode는 "window"로 설정됩니다.
요약: wmode를 "window"로 설정하면 a.swf가 그 아래의 모든 html 페이지를 차단하게 됩니다. a.swf 스크롤 영역으로 마우스 이동 페이지 전환 시 JS에 브라우저 마우스 스크롤 모니터링을 추가하라는 알림이 표시되지 않으므로 작업 후 html 페이지로 다시 전환할 때 스크롤 처리가 없습니다


방법 2: 1.a.swf는 자체 마우스 스크롤 수신 이벤트를 취소하고 휠투플래시(value)와 같은 JS 호출 처리 인터페이스를 추가합니다.
2. a.swf 스크롤 영역: JS에 알립니다(예: mouseIsInFlashWheelRange=true)
3. 마우스가 a.swf 스크롤 영역 밖으로 이동할 때: JS에 알립니다(예: mouseIsInFlashWheelRange=false). JS는 마우스 스크롤 이벤트를 수신합니다. 이벤트 수신 처리 기능에서 다음과 같은 판단을 내려야 합니다
Javascript 코드:



코드 복사코드는 다음과 같습니다.
if(mouseIsInFlashWheelRange==true)
{
/**a.swf가 스크롤링을 시뮬레이션하도록 a.swf에서 제공하는 인터페이스를 호출합니다.*/
/** "flash"는 html에 포함된 a.swf의 ID이고 value는 html 스크롤 테이블 스크롤 값입니다.*/
document.getElementById("flashID").wheelToFlash(value);
/**HTML 페이지에서 마우스 이벤트(보통 event.preventDefault())의 버블링을 방지합니다.*/
event.preventDefault()
}
else
{
/**HTML의 일반적인 스크롤을 처리하기 위해 아무것도 할 필요가 없습니다.*/
}


요약
: 방법 1과 비교해 wmode="window의 제한이 없습니다. "; Alt Tab의 문제는 여전히 존재합니다. 참고
: JS 코드를 작성할 때 브라우저마다 마우스 이벤트를 모니터링하고 스크롤 값을 다르게 가져오는 호환성 문제에 주의해야 합니다!
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.