html与嵌入其中的flash均存在滚动条的情况分析及
在软件开发中,我们经常面临一种特殊挑战:在网页中嵌入a.swf文件时,需要实现a.swf与html页面之间的滚动条协同工作。项目经理提出了一个颇具技巧性的需求——当鼠标在a.swf上滚动时,html页面不滚动,反之则正常滚动。这听起来似乎复杂,但实际上可以通过一些方法实现。
方法一:
这种方法的核心在于利用JavaScript来监听鼠标的移动和滚动事件。
1. 当鼠标进入a.swf的滚动区域时,通过JS移除浏览器的鼠标滚动监听。这样,html页面就不会因为鼠标滚动而滚动。
2. 当鼠标离开a.swf的滚动区域时,再通过JS添加浏览器鼠标滚动监听,恢复html页面的正常滚动功能。
3. 将a.swf的wmode设置为“window”。这种方法存在一个缺陷:wmode设置为“window”可能会导致a.swf遮挡住其下方的html页面内容。当鼠标在a.swf上滚动后,如果此时按下Alt+Tab切换页面,JS可能无法及时添加浏览器鼠标滚动监听,导致在切换回html页面后滚动处理不正常。
方法二:
这种方法对a.swf的滚动处理进行了更精细的控制。
1. 取消a.swf自身的鼠标滚动监听事件。这样,a.swf的滚动不会影响到html页面的滚动。
2. 为a.swf添加一个滚动处理接口,供JS调用。例如,当a.swf需要滚动时,可以通过wheelToFlash(value)函数来实现。
3. 当鼠标进入a.swf的滚动区域时,通过JS标记mouseIsInFlashWheelRange为true。当鼠标离开时,将其设置为false。
4. 在JS中监听鼠标滚动事件。根据mouseIsInFlashWheelRange的值来决定是调用a.swf的滚动接口还是处理html页面的正常滚动。我们还需要注意兼容性问题,不同浏览器对鼠标事件的监听以及滚动值的获取方式可能不同。
与方法一相比,方法二没有了wmode="window"的限制,但Alt+Tab切换页面导致的问题仍然存在。在实现这一功能时,我们需要充分考虑各种情况,确保在各种场景下都能提供流畅的用户体验。写JS代码时需要注意兼容性问题,确保代码在不同浏览器中的表现一致。
网站模板
- html与嵌入其中的flash均存在滚动条的情况分析及
- 招财宝和余额宝有什么区别-阿里招财宝产品如何
- CDR怎么做矢量图印章- cdr将图形转换成印章的教程
- CSS 折叠的菜单实现代码
- ai怎么设计不忘初心的素材海报- ai设计插画风格
- 用Dreamweaver制作网页中常用的过渡效果
- 内网渗透——如何打开突破口
- CAD如相对坐标系怎么确定点坐标-
- 如何加密电脑文件-电脑文件加密方法介绍
- 在3DMAX里计算出雕塑的表面积小技巧详解
- CSS3五个技巧给你的网站带来出色的效果
- IBM A21M维修记
- win10预览版10125更新内容 windows10build10125更新日志
- flashfxp解密
- airpods连接win10不稳定如何解决 airpods连接win10音量
- html2canvas关于图片不能正常截取的解决方案