html与嵌入其中的flash均存在滚动条的情况分析及处理办法

2019-09-08 郑州网站建设  

我们在做开发时经常会遇到这种情况: 
a.swf被添加到网页中, a.swf和html页面同时存在滚动条, 项目经理提了一个BT的需求---处理a.swf鼠标滚动的时候html页面不执行滚动, 反之则执行html页面的滚动! 
需要如何做呢? 
办法1
1.鼠标移入a.swf滚动区域的时候: 告知JS移除浏览器鼠标滚动监听. 
2.鼠标移出a.swf滚动区域的时候: 告知JS添加浏览器鼠标滚动监听. 
3.a.swf的wmode设置为"window". 
总结: wmode设置为"window"可能会不满足项目需求, 这使得a.swf遮挡住任何在其之下的html页面; 另外鼠标移入a.swf滚动区域后按Alt+Tab切换页面时没有告知JS添加浏览器鼠标滚动监听, 所以在操作之后切回到html页面中是没有滚动处理的 

办法2
1.a.swf取消自身的鼠标滚动监听事件, 添加滚动处理接口供JS调用, 例如wheelToFlash(value). 
2.鼠标移入a.swf滚动区域的时候: 告知JS, 例如mouseIsInFlashWheelRange=true. 
3.鼠标移出a.swf滚动区域的时候: 告知JS, 例如mouseIsInFlashWheelRange=false; 
4.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正常的滚动, 我们可以什么都不需要做*/ 


河南郑州做网站首选天择文化,我们专注郑州网站建设网站设计网站制作与开发,是中原地区专业的郑州网络公司,多年来我们一直努力,服务客户数百家,欢迎您的咨询。
本文链接:郑州网络公司http://tzchb.ieyo.com/seo/1337.html转载请标明出处,谢谢合作!
标签:
  • flash
  • HTML
  • е
  • 我们
  • 开发
  • 时经
  • 常会