【问题标题】:Getting a full-screen HTML5 Video Background Blur to work?让全屏 HTML5 视频背景模糊工作?
【发布时间】:2015-11-24 03:58:53
【问题描述】:

我似乎在这里尝试了本书中的所有技巧,但没有任何效果。

我有一个全屏、绝对定位的 HTML5 视频背景,我需要对其进行模糊处理。不过,我希望它有锋利的边缘。

到目前为止,我已经在网上尝试了大约 20 或 30 种不同的解决方案,但似乎没有任何效果。

这是我尝试过的:

-设置负边距

-设置负上、左、右、下边距

-在隐藏溢出的容器中设置正边距

-在容器中设置并隐藏溢出

-此处注明的方法:Defined Edges With CSS3 Filter Blur - Defined Edges With CSS3 Filter Blur - CSS blur and retain sharp edges using absolute div - Blur absolute background whilst retaining solid edges - http://volkerotto.net/2014/07/03/css-background-image-blur-without-blury-edges/

到目前为止的代码如下:

HTML

<video id="videobcg" preload="auto" autoplay="true" loop="loop"     muted="muted" volume="0">
<source src="vid/myVid.mp4" type="video/mp4">
<source src="vid/myVid.webm" type="video/webm">
    Sorry, your browser does not support HTML5 video.
</video>

CSS

#videobcg {
    position: absolute;
    top: 0;
    left: 0;
    min-width: 100% !important;
    max-height: 100% !important;
    z-index: -1000;
    overflow: hidden;
    object-fit: fill;
    -webkit-filter: blur(15px);
    -moz-filter: blur(15px);
    -o-filter: blur(15px);
    -ms-filter: blur(15px);
    filter: blur(15px);
}

也许我做错了什么,我不太确定。有什么我正在做的事情阻止它工作吗?

提前感谢您的帮助!

【问题讨论】:

    标签: css html html5-video css-filters


    【解决方案1】:

    您可能希望使该视频大于父级并将其居中放置,我认为这将消除父级边界内的白色模糊。

    @Ashugeo,我采用了您的代码并按照您多年前的建议进行了操作,并且似乎有效。

    不幸的是,这似乎不起作用。我还尝试将视频放大并居中,但似乎仍然无法正常工作。

    @Finn C,现在它似乎可以使用转换: https://jsfiddle.net/Erik_J/6f483wm9/

    HTML

    <div id="container">
        <video id="videobcg" preload="auto" autoplay="true" loop="loop" muted="muted" volume="0">
        <source src="http://clips.vorwaerts-gmbh.de/VfE_html5.mp4" type="video/mp4">
        Sorry, your browser does not support HTML5 video.
        </video>
    </div>
    

    CSS

    body{ margin:0;}
    
    #container {
        width: 100vw;
        height: 100vh;
        text-align: center;
        overflow: hidden;
    }
    #videobcg {
        width: inherit;
        height: inherit;
        -o-filter: blur(15px);
        filter: blur(15px);
        object-fit: cover;
        transform: scale(1.04);
    }
    

    【讨论】:

    • 工作笔的荣誉,我什至不知道我可以模糊视频! :D
    • transfrom 方法在 chrome 中不再起作用。这是基于背景过滤器的跨浏览器解决方案:jsfiddle.net/rttmax/psu0trm8/43
    【解决方案2】:

    pen 是否符合您的需求?

    HTML

    <div id="container">
        <video id="videobcg" preload="auto" autoplay="true" loop="loop" muted="muted" volume="0">
        <source src="http://clips.vorwaerts-gmbh.de/VfE_html5.mp4" type="video/mp4">
        Sorry, your browser does not support HTML5 video.
        </video>
    </div>
    

    CSS

    #container {
      width: 640px;
      height: 360px;
      overflow: hidden;
      -webkit-filter: blur(15px);
      -moz-filter: blur(15px);
      -o-filter: blur(15px);
      -ms-filter: blur(15px);
      filter: blur(15px);
    }
    
    #videobcg {
      width: 100%;
      height: auto;
    }
    

    您可能希望使该视频大于父级并将其居中放置,我认为这将消除父级边界内的白色模糊。

    【讨论】:

    • 不幸的是,这似乎不起作用。我还尝试将视频制作得更大并将其居中,但似乎仍然不起作用。但是,记录一下,它产生的结果与上面的代码相同,这很好(做同样事情的代码少一点!)
    • 我明白你的意思了。而且我一直在尝试很多东西,但是那个插入的白色模糊总是出现在窗口的边界附近。我编辑了笔并使视频更宽以证明这一点,请参阅codepen.io/Ashugeo/pen/bVbyNE。现在我和你一样好奇。它不会以图像的方式表现,只有视频......
    • @Ashugeo 上面的笔你删了吗?本来想看看,却收到了“找不到页面”的消息。
    • @AndrewL64 我想我可能有……抱歉。反正笔没有预期的结果,我只是在证明问题……
    • @Ashugeo 2015 年 8 月 29 日 19:40,我将您的笔重新创建为 JsFiddle:jsfiddle.net/Erik_J/6f483wm9。它使用变换来放大视频并让容器隐藏其溢出。这似乎按要求工作。
    猜你喜欢
    • 2014-04-06
    • 1970-01-01
    • 1970-01-01
    • 2016-04-29
    • 2015-04-02
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    • 2017-10-23
    相关资源
    最近更新 更多