通过jquery更改html视频播放器css

Posted

技术标签:

【中文标题】通过jquery更改html视频播放器css【英文标题】:Change html video players css through jquery 【发布时间】:2019-07-10 08:36:57 【问题描述】:

我正在尝试通过 jquery/javascript 隐藏 html 视频播放器中的渐变和时间线。

我让它在 CSS 上工作:

video::-webkit-media-controls-panel 
    background-image: none !important;
    filter: brightness(0);


video::-webkit-media-controls-timeline 
    display: none;

但是 CSS 应该只有在视频有源之后才会出现,所以我想通过 javascript 添加这个 CSS。这允许我添加条件。

我尝试了以下方法,但执行此操作时似乎没有任何变化:

$('video::-webkit-media-controls-panel').css(
    'background-image': 'none !important',
    'filter': 'brightness(0)'
);

$('video::-webkit-media-controls-timeline').css(
    'display': 'none'
);

有谁知道我怎样才能做到这一点?

【问题讨论】:

为什么不把它写在一个全局的.css 或者一个<style></style> 中? 【参考方案1】:

我通过 JavaScript 使用您提供的预期样式将 style 标记附加到头部来解决这个问题。 ES6 模板字面量语法被用来保持东西看起来干净。在 Chrome 中测试。

$(`<style>
    video::-webkit-media-controls-panel,
    video::-webkit-media-controls-timelinedisplay: none; 
    video::-webkit-media-controls-panelbackground-image:none !important    
   </style>`).appendTo('head');

jsFiddle

【讨论】:

【参考方案2】:

与 Andy's 的解决方案类似,但可以使用编辑器,例如 Moodle 中的 Atto,它会自动删除

var sty = document.createElement("style");
sty.innerHTML = "video::-webkit-media-controls-panel  background-image: none !important; filter: brightness(0);  video::-webkit-media-controls-timeline  display: none; ";
$("head").append(sty);

【讨论】:

以上是关于通过jquery更改html视频播放器css的主要内容,如果未能解决你的问题,请参考以下文章

我们可以更改浏览器的原生视频播放器的 css 吗?如果不是,那么最轻的 html5 视频播放器插件是啥?

Jquery+css实现图片无缝滚动轮播

使用 jQuery/javascript/css 更改 Flash 视频对象的属性

iOS视频边下边播--缓存播放数据流

如何创建 HTML / CSS 代码,以允许带有按钮的可滚动侧边栏更改旁边播放器中的视频源?

Jquery更改HTML5的video标签的属性,实现更换视频的效果。或者提供一个可行的思路