【问题标题】:Clip-path not working on videos剪辑路径不适用于视频
【发布时间】:2015-08-12 11:30:00
【问题描述】:

我一直在尝试显示图像,在悬停时,视频会开始替换图像,我使用 Javascript 实现悬停功能。

我在视频标签中使用了“海报”,如下所示:`

<div class="video">

    <video id="videotest" poster="images/img.jpg">
        <source src="images/bkg.mp4" type="video/mp4"></source>
        Can't use videos here.
    </video>

</div>

但是,我希望视频与图片大小相同。视频为1280*720,图片为677-611。 我尝试使用剪辑路径来调整视频,但它不起作用,这是我的 CSS:

.video {
    text-align:center;
    margin:0 auto;
    height:auto;
    clip-path:inset(0 978px 611px 301px);
    -webkit-clip-path:inset(0 978px 611px 301px);
}

我尝试将此样式应用于 .video、#videotest 和 source,但仍无法按预期工作。

HTML5 中的视频不能使用剪辑路径吗?如果是,我该怎么做,如果不是,我怎样才能让它发挥作用?

我会再解释一下: 我不希望图像调整大小,保持比例,我只是想切断,例如左右一些像素,所以海报中的图像与替换它的视频大小完全相同。 Clip-path 似乎与我正在寻找的内容相对应,但我无法让它工作。

谢谢。

【问题讨论】:

  • 你能在jsfiddle.net上添加代码sn-p吗?
  • 在哪里可以上传视频(只有 3 MB)?我尝试了 TinyPic 和 vid.me,但没有显示。我可以继续使用视频标签,这样我就可以使用海报属性,或者我必须使用 iframe,然后上传到例如 Youtube 上?

标签: html css clip-path


【解决方案1】:

这是您在视频标签 poster="transparent.jpg" 中添加的 HTML 代码,以通过 css 背景和 preload="none" 调用它使海报可见,然后确保在 video 标签内的 source 标签中添加适用于浏览器的视频扩展 不幸的是,我无法找出适用于 safari 的扩展, 如果您将视频作为一个扩展名添加到您的源文件夹中,它可能会起作用,但我从未尝试过

.video {
        background:transparent url('http://dev.powered-by-haiku.co.uk/jw-html-config/posters/big-buck-bunny-preview.jpg') no-repeat;
	background-size:  677px 611px;
	text-align:center;
	margin: 0 auto;
	width: 677px; 
        height:611px;
}

video { 
            width: 677px; 
            height:611px;
            object-fit:inherit;
    	}
    	<div class="video">
    	    <video controls="true" id="videotest" poster="transparent.jpg" preload="none">
    	        <source src="http://clips.vorwaerts-gmbh.de/VfE_html5.mp4" type="video/mp4"/>
    		    <source src="http://clips.vorwaerts-gmbh.de/VfE.webm" type="video/webm" />
    		    <source src="http://clips.vorwaerts-gmbh.de/VfE.ogv" type="video/ogg" />
    	    </video>
    	</div>

【讨论】:

  • 感谢您的回答。但它并不完全有效,我想调整视频,而不是图像。而且,当我把它放在背景中时,我看不到图像,在视频后面,即使是透明的图像。至于 Safari,看来您只需要在计算机上安装 quicktime 就可以看到视频,不过我没有尝试。
  • 只需添加 object-fit:inherit;在 CSS 中释放视频表单自动缩放,因为默认情况下,如果我们尝试更改视频高度,它也会自动更改宽度并反转。
  • 这一次它适应图像的大小,而不是视频的大小。不过谢谢!
  • 它同时适应视频和图像,不幸的是它适用于 Opera、Chrome、Firefox 但不适用于(Safari 和 IE)。
  • 所有你需要做的就是:如果你想改变高度,你必须改变视频和.video中的“background-size”,“height”的高度,所以所有它们的高度也必须相同,而且我正在开发 Safari 和 IE。
【解决方案2】:
.svg-clipped-text {
    -webkit-clip-path: url(#SVGID_2_);
    clip-path: url(#SVGID_2_);
}



<video loop width="100%" height="100%" autoplay class="svg-clipped-text">
    <source src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/323909/bouncyballs.mp4" type="video/mp4">
    </video>
<div class="demo">
    <svg height="0" width="0">

        <clipPath id="SVGID_2_">
            <path id="SVGID_3_" d="M770.5,483c3.1,12.8-2.2,30.7-11.8,39.7L498,770c-9.5,9.1-27.7,13.4-40.3,9.7L113.2,677.5
            c-12.6-3.7-25.4-17.3-28.5-30L0.9,298c-3.1-12.8,2.2-30.7,11.8-39.7L273.4,11C282.9,2,301-2.4,313.6,1.3l344.5,102.1
            c12.6,3.7,25.4,17.3,28.5,30L770.5,483z"/>
        </clipPath> 
    </svg>

【讨论】:

  • 欢迎来到 Stack Overflow!请不要只用源代码回答。尝试对您的解决方案如何工作提供一个很好的描述。请参阅:How do I write a good answer?。谢谢
猜你喜欢
  • 2013-10-14
  • 1970-01-01
  • 2017-07-04
  • 2018-03-09
  • 1970-01-01
  • 1970-01-01
  • 2015-08-15
  • 2020-04-27
  • 2015-11-15
相关资源
最近更新 更多