阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

网页视频遮住顶层 DIV 的解决办法

553次阅读
没有评论

共计 4258 个字符,预计需要花费 11 分钟才能阅读完成。

在一个客户的案例中,遇到一个比较奇怪的问题,网页中插入优酷视频后,滚动时会遮住最顶层的 div,如下图所示:

网页视频遮住顶层 DIV 的解决办法

只在 IE8 及以下版本的 IE 浏览器才出现这个问题,修改 z-index 属性没办法解决。于是搜索了一下,发现设置一下 wmode 的值为 opaque 就可以了。最终的代码样例如下:

1
2
3
4
5
6
7
8
<object width="720" height="452" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" align="middle">
    <param name="src" value="http://player.youku.com/player.php/sid/XNzUwOTQwMDI0/v.swf" />
    <param name="allowfullscreen" value="true" />
    <param name="quality" value="high" />
    <param name="allowscriptaccess" value="always" />
    <param name="wmode" value="opaque" />
    <embed wmode="opaque" width="720" height="452" type="application/x-shockwave-flash" src="http://player.youku.com/player.php/sid/XNzUwOTQwMDI0/v.swf" allowfullscreen="true" quality="high" allowscriptaccess="always" align="middle" />
</object>

注意看代码第 6 行,就是新增的 wmode 属性。也许你会说,每个插入的视频都这样添加一行,实在是麻烦,好吧,如过你用的是 WordPress,只需要将下面的代码添加到主题的 functions.php 就可以啦:

1
2
3
4
5
6
7
89
10
11
12
13
14
/**
 * WordPress 快速替换文章 / 评论的某些文字内容
 * http://www.wpdaxue.com/replace-text-of-content-or-comment.html
 */
function wpdaxue_replace_text($text){
	$replace = array(
		'<embed' => '<param name="wmode"value="opaque"/><embed wmode="opaque"'
		);
	$text = str_replace(array_keys($replace), $replace, $text);
	return $text;
}
add_filter('the_content', 'wpdaxue_replace_text'); // 正文
add_filter('the_excerpt', 'wpdaxue_replace_text'); // 摘要
add_filter('comment_text', 'wpdaxue_replace_text'); // 评论

关于 wmode 属性的更多内容,请继续往下看:

以下内容转载自:http://www.zhihu.com/question/20144006

在做 web 开发中可能会遇到 flash 遮挡页面中元素的情况,无论怎么设置 flash 容器和层的深度 (z-index) 也无济于事,现有的解决方案是在插入 flash 的 embed 或 object 标签中加入”wmode”属性并设置为 wmode=“transparent”或”opaque”,但 wmode 属性到底是什么意义,为什么可以解决这个问题呢?

window mode(wmode)

wmode 即窗口模式总共有三种,看看当年 Macromedia 官方的说法:

  • Window: Use the Window value to play a Flash Player movie in its own rectangular window on a web page. This is the default value for wmode and it works the way the classic Flash Player works. This normally provides the fastest animation performance.
  • Opaque: By using the Opaque value you can use JavaScript to move or resize movies that don’t need a transparent background. Opaque mode makes the movie hide everything behind it on the page. Additionally, opaque mode moves elements behind Flash movies (for example, with dynamic HTML) to prevent them from showing through.
  • Transparent: Transparent mode allows the background of the HTML page, or the DHTML layer underneath the Flash movie or layer, to show through all the transparent portions of the movie. This allows you to overlap the movie with other elements of the HTML page. Animation performance might be slower when you use this value.

window 模式

默认情况下的显示模式,在这种模式下 flash player 有自己的窗口句柄,这就意味着 flash 影片是存在于 Windows 中的一个显示实例,并且是在浏览器核心显示窗口之上的,所以 flash 只是貌似显示在浏览器中,但这也是 flash 最快最有效率的渲染模式。由于他是独立于浏览器的 HTML 渲染表面,这就导致默认显示方式下 flash 总是会遮住位置与他重合的所有 DHTML 层。

但是大多数苹果电脑浏览器会允许 DHTML 层显示在 flash 之上,但当 flash 影片播放时会出现比较诡异的现象,比如 DHTML 层像被 flash 刮掉一块一样显示异常。

Opaque 模式

这是一种无窗口模式,在这种情况下 flash player 没有自己的窗口句柄,这就需要浏览器需要告诉 flash player 在浏览器的渲染表面绘制的时间和位置。这时 flash 影片就不会在高于浏览器 HTML 渲染表面而是与其他元素一样在同一个页面上, 因此你就可以使用 z -index 值来控制 DHTML 元素是遮盖 flash 或者被遮盖。

Transparent 模式

透明模式,在这种模式下 flash player 会将 stage 的背景色 alpha 值将为 0 并且只会绘制 stage 上真实可见的对象,同样你也可以使用 z -index 来控制 flash 影片的深度值,但是与 Opaque 模式不同的是这样做会降低 flash 影片的回放效果,而且在 9.0.115 之前的 flash player 版本设置 wmode=”opaque”或”transparent”会导致全屏模式失效。

以上内容转自蓝色理想

结论:

添加一个 wmode=”transparent”属性或者 wmode=”opaque”属性 即可
推荐使用 wmode=”opaque”因为 wmode=”transparent”会影响 flash 的性能

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计4258字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7805545
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY 公司之前花钱购买的 ssl 证书快...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸 前言 作为天天跟架构图、拓扑图死磕的...
星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

  星哥带你玩飞牛 NAS-16:不再错过公众号更新,飞牛 NAS 搭建 RSS 对于经常关注多个微...
恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击 PHP-FPM(FastCGl Process M...
仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

还在忍受动辄数百兆的“全家桶”监控软件?后台偷占资源、界面杂乱冗余,想查个 CPU 温度都要层层点选? 今天给...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...