当前位置:首页 > 文章列表 > 文章 > 前端 > HTML中没有picture-in-picture-waiting伪类,它是误写或自定义属性。若需实现画中画等待样式,可通过JavaScript监听事件并动态添加类控制样式。
HTML中没有picture-in-picture-waiting伪类,它是误写或自定义属性。若需实现画中画等待样式,可通过JavaScript监听事件并动态添加类控制样式。
小伙伴们有没有觉得学习文章很有意思?有意思就对了!今天就给大家带来《HTML中并没有picture-in-picture-waiting这个伪类,它并不是标准的CSS伪类。可能你提到的是与画中画(Picture-in-Picture, PiP)功能相关的某个特定属性或事件,但目前在标准的HTML和CSS中,并没有这样的伪类。不过,如果你是在使用JavaScript来控制画中画功能,比如通过,以下内容将会涉及到,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!
通过::picture-in-picture-waiting伪类为视频元素在进入画中画前的等待状态设置样式,如虚线边框和透明度变化,以提供视觉反馈;该伪类作用于原始video元素,与::picture-in-picture区分,后者用于已进入画中画状态时的样式;目前主要在Chromium内核浏览器支持,需注意兼容性并采用渐进增强策略。

HTML中设置画中画等待样式,主要是通过CSS的::picture-in-picture-waiting伪类来实现的。这个伪类的作用,简而言之,就是允许你为视频元素在进入画中画模式前的“准备”或“等待”状态提供特定的视觉反馈。它不是用来控制画中画窗口本身,而是作用于原始的video元素,当它正在准备被移入画中画时。
解决方案
要为HTML视频元素设置画中画等待样式,你需要利用::picture-in-picture-waiting这个CSS伪类。这通常意味着当用户触发画中画功能,但浏览器还没有完全将视频内容渲染到独立的画中画窗口之前,你可以对原始的video元素应用样式。
<video id="myVideo" controls src="your-video-source.mp4"></video>
/* 当视频正在准备进入画中画模式时 */
#myVideo::picture-in-picture-waiting {
border: 3px dashed #ff9800; /* 示例:添加一个虚线边框 */
opacity: 0.7; /* 示例:稍微降低透明度 */
transition: all 0.3s ease-in-out; /* 示例:平滑过渡效果 */
/* 也可以显示一个加载指示器,但通常需要配合JavaScript动态添加元素 */
}
/* 当视频已经进入画中画模式时,这会作用于原始页面上的视频元素 */
#myVideo::picture-in-picture {
opacity: 0.3; /* 示例:让原始视频变得半透明 */
pointer-events: none; /* 示例:禁用原始视频的交互 */
}这段CSS代码会告诉浏览器,当#myVideo元素处于画中画的“等待”状态时,给它一个橙色的虚线边框,并让它稍微透明一点。这能给用户一个直观的提示,表明操作正在进行中,而不是页面卡住了。
::picture-in-picture-waiting 伪类在实际应用中的场景有哪些?
说实话,这个伪类的应用场景其实蛮具体的,主要就是为了优化用户体验,尤其是在用户发起画中画请求到实际画中画窗口出现之间那短暂的、有时甚至是肉眼不可察觉的瞬间。我个人觉得,它最实用的地方在于提供一个“正在处理”的视觉信号。
比如,你可以:
- 加载指示器: 在视频元素上叠加一个旋转的加载图标或文本,告诉用户“正在准备画中画窗口”。这比直接跳转要友好得多。虽然纯CSS可能难以实现复杂的加载动画,但简单的背景色变化或边框动画还是可以的。
- 状态反馈: 改变视频元素的边框颜色、背景色或者添加一个半透明的蒙层,暗示这个视频即将“离开”当前页面,进入独立窗口。这有点像一个“预告”,让用户知道他们的点击是有响应的。
- 视觉过渡: 配合CSS的
transition属性,可以让视频元素在进入等待状态时有一个平滑的动画效果,比如逐渐变暗或缩小一点,然后再进入画中画。这样整个过程会显得更加流畅,不那么突兀。 - 禁用交互: 在等待期间,你可能希望用户不要再对原始视频进行操作,这时可以设置
pointer-events: none;,防止误触。
我觉得,这些细节虽然小,但对提升用户感知的流畅度和专业性非常有帮助。用户看到一个即时反馈,会觉得你的应用更“活生生”。
如何区分 ::picture-in-picture 和 ::picture-in-picture-waiting?
这两个伪类,从名字上看很像,但它们作用的时间点和目的完全不同,理解它们各自的生命周期非常关键。
::picture-in-picture-waiting:- 作用时机:当视频元素被请求进入画中画模式,但浏览器尚未完成画中画窗口的创建和内容渲染时。这是一个短暂的、过渡性的状态。你可以把它想象成视频在“准备行李”阶段。
- 目的:主要用于提供用户反馈,表明画中画操作正在进行中,避免用户误以为没有响应。它作用于原始页面上的视频元素。
::picture-in-picture:- 作用时机:当视频元素已经成功进入画中画模式之后。
- 目的:用于样式化原始页面上的视频元素,当它的内容被复制到独立的画中画窗口时。此时,原始页面的视频元素通常会变得不那么重要,或者你希望它以某种方式“淡出”背景。
- 重要提示:这个伪类不作用于画中画窗口本身。画中画窗口是一个由操作系统或浏览器独立管理的UI,开发者无法直接通过CSS来样式化它。
::picture-in-picture伪类仍然作用于你HTML文档中的那个video标签。
简单来说,waiting是在“即将进入”的状态,而没有waiting的那个,则是在“已经进入”的状态。我经常会把它们俩搞混,但只要记住waiting是针对那个“准备过程”,而另一个是针对“已经完成但原始元素还在”的状态,就清晰多了。
浏览器兼容性与未来发展:使用 ::picture-in-picture-waiting 需要注意什么?
关于浏览器兼容性,这是我们前端开发者永远绕不开的话题。::picture-in-picture-waiting这个伪类,坦白讲,它的支持度目前还不如::picture-in-picture那么广泛。
根据我了解到的情况,::picture-in-picture-waiting的支持情况:
- Chrome/Edge/Opera 等基于 Chromium 内核的浏览器通常支持得比较好。
- Firefox 和 Safari 对这个伪类的支持可能还在发展中,或者不如 Chromium 系那么完善。有时候,你可能需要查阅最新的MDN文档或者Can I use网站来获取最准确的兼容性信息。
使用时需要注意:
- 渐进增强: 由于兼容性可能不一致,我建议将其作为一种“渐进增强”的特性来使用。这意味着即使浏览器不支持
::picture-in-picture-waiting,你的画中画功能也应该能正常工作,只是用户可能看不到那个“等待”的视觉反馈。不要让核心功能依赖于这个伪类。 - 测试: 在不同浏览器和操作系统上进行充分测试是必不可少的。你可能会发现某些浏览器在特定情况下表现不一致。
- 替代方案: 如果你对“等待”状态的反馈要求很高,并且需要更广泛的兼容性,你可能需要考虑结合JavaScript来手动控制一个加载动画或蒙层。比如,在调用
requestPictureInPicture()方法之前,显示一个div作为加载指示器,然后在pictureinpicturechange事件触发后隐藏它。 - API结合:
::picture-in-picture-waiting是Picture-in-Picture Web API的一部分,它与video.requestPictureInPicture()、document.exitPictureInPicture()以及相关的事件(如enterpictureinpicture、leavepictureinpicture)协同工作。理解整个API的生命周期,能帮助你更好地利用这些CSS伪类。
总的来说,这是一个很酷的小特性,能让用户体验更上一层楼,但在实际项目中,还是要考虑到它的兼容性,并做好备用方案。
到这里,我们也就讲完了《HTML中没有picture-in-picture-waiting伪类,它是误写或自定义属性。若需实现画中画等待样式,可通过JavaScript监听事件并动态添加类控制样式。》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!
Linux更换源加速下载方法
- 上一篇
- Linux更换源加速下载方法
- 下一篇
- 桥梁油漆大修材料管理技巧
-
- 文章 · 前端 | 5分钟前 | HTML5
- HTML5文件解压方法与库使用教程
- 361浏览 收藏
-
- 文章 · 前端 | 8分钟前 |
- JS中diff函数使用方法详解
- 274浏览 收藏
-
- 文章 · 前端 | 9分钟前 |
- CSS引入方式在组件开发中的实践应用
- 417浏览 收藏
-
- 文章 · 前端 | 11分钟前 |
- CSS无法直接选父元素,但有替代方法
- 108浏览 收藏
-
- 文章 · 前端 | 16分钟前 | CSS布局
- CSS定位详解与布局技巧
- 450浏览 收藏
-
- 文章 · 前端 | 17分钟前 |
- CSS固定头部底部实现方法
- 286浏览 收藏
-
- 文章 · 前端 | 18分钟前 |
- JavaScript正则表达式技巧与优化解析
- 291浏览 收藏
-
- 文章 · 前端 | 26分钟前 |
- HTML5单选按钮怎么设置方法
- 342浏览 收藏
-
- 文章 · 前端 | 28分钟前 | html 程序停止运行
- HTML程序停止运行怎么办?实用解决技巧
- 150浏览 收藏
-
- 文章 · 前端 | 29分钟前 | HTML5 运行
- HTML5代码怎么运行?详细步骤教程
- 162浏览 收藏
-
- 文章 · 前端 | 29分钟前 |
- 函数是一等公民,高阶函数怎么用?
- 149浏览 收藏
-
- 文章 · 前端 | 29分钟前 |
- JavaScript正则表达式常用写法解析
- 422浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
-
- ChatExcel酷表
- ChatExcel酷表是由北京大学团队打造的Excel聊天机器人,用自然语言操控表格,简化数据处理,告别繁琐操作,提升工作效率!适用于学生、上班族及政府人员。
- 3578次使用
-
- Any绘本
- 探索Any绘本(anypicturebook.com/zh),一款开源免费的AI绘本创作工具,基于Google Gemini与Flux AI模型,让您轻松创作个性化绘本。适用于家庭、教育、创作等多种场景,零门槛,高自由度,技术透明,本地可控。
- 3817次使用
-
- 可赞AI
- 可赞AI,AI驱动的办公可视化智能工具,助您轻松实现文本与可视化元素高效转化。无论是智能文档生成、多格式文本解析,还是一键生成专业图表、脑图、知识卡片,可赞AI都能让信息处理更清晰高效。覆盖数据汇报、会议纪要、内容营销等全场景,大幅提升办公效率,降低专业门槛,是您提升工作效率的得力助手。
- 3793次使用
-
- 星月写作
- 星月写作是国内首款聚焦中文网络小说创作的AI辅助工具,解决网文作者从构思到变现的全流程痛点。AI扫榜、专属模板、全链路适配,助力新人快速上手,资深作者效率倍增。
- 4942次使用
-
- MagicLight
- MagicLight.ai是全球首款叙事驱动型AI动画视频创作平台,专注于解决从故事想法到完整动画的全流程痛点。它通过自研AI模型,保障角色、风格、场景高度一致性,让零动画经验者也能高效产出专业级叙事内容。广泛适用于独立创作者、动画工作室、教育机构及企业营销,助您轻松实现创意落地与商业化。
- 4160次使用
-
- JavaScript函数定义及示例详解
- 2025-05-11 502浏览
-
- 优化用户界面体验的秘密武器:CSS开发项目经验大揭秘
- 2023-11-03 501浏览
-
- 使用微信小程序实现图片轮播特效
- 2023-11-21 501浏览
-
- 解析sessionStorage的存储能力与限制
- 2024-01-11 501浏览
-
- 探索冒泡活动对于团队合作的推动力
- 2024-01-13 501浏览

