html与嵌入其中的flash均存在滚动条的情况分析及处理方法
来源: 阅读:658 次 日期:2016-06-21 13:52:14
温馨提示: 小编为您整理了“html与嵌入其中的flash均存在滚动条的情况分析及处理方法”,方便广大网友查阅!

a.swf被添加到网页中, a.swf和html页面同时存在滚动条, 项目经理提了一个BT的需求---处理a.swf鼠标滚动的时候html页面不执行滚动, 反之则执行html页面的滚动,遇到此问题的朋友可以参考下啊,希望本文对你有所帮助

我们在做开发时经常会遇到这种情况:

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正常的滚动, 我们可以什么都不需要做*/

}

总结: 与方法1相比没有了wmode="window"的限制; Alt+Tab的问题仍然存在。

注意: 在写JS代码的时候我们需要注意兼容性的问题, 不同浏览器对鼠标事件的监听以及滚动值的获取均不相同!

更多信息请查看网页制作
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map