婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > transform實(shí)現(xiàn)HTML5 video標(biāo)簽視頻比例拉伸實(shí)例詳解

transform實(shí)現(xiàn)HTML5 video標(biāo)簽視頻比例拉伸實(shí)例詳解

熱門標(biāo)簽:滄州智能外呼系統(tǒng)收費(fèi) 湖北穩(wěn)定外呼系統(tǒng) 電銷機(jī)器人怎么收費(fèi) 忻州外呼系統(tǒng)接口對接 地圖標(biāo)注和圖片標(biāo)注 洛陽便宜外呼系統(tǒng)廠家 嘟聲的電銷機(jī)器人 醫(yī)院地圖標(biāo)注 語音平臺(tái)系統(tǒng)

曾幾何時(shí),項(xiàng)目中有碰到視頻比例拉伸的需求,但是發(fā)現(xiàn)這個(gè)看似再普通不過的一個(gè)需求,找遍全網(wǎng)至今都沒有找到解決方法。因?yàn)閺?qiáng)制給video標(biāo)簽設(shè)置width和height的話只會(huì)將video的顯示區(qū)域拉伸,但是里面的視頻還是保持原始比例,怎么調(diào)都沒用:

因?yàn)楫?dāng)我橫向拉伸時(shí):

當(dāng)我縱向拉伸時(shí):

2016-09-21 11:15:40 更新:

感謝 @RileyRen 提醒,原來還有object-fit這一屬性,把它設(shè)置為fill就滿足需求了,淚奔~,這篇文章就當(dāng)看個(gè)笑話吧,哎,不過可以看看我家喵星人的處女秀。

style>
video {
 object-fit:fill;
 width:800px;
 height:320px;
}
/style>
h1>測試視頻比例拉伸:/h1>
video src="http://7xnzpx.com1.z0.glb.clouddn.com/miaoxingren_360p.mp4" controls autoplay loop>/video>

不過這一屬性兼容性不太好,IE全軍覆沒,安卓要4.4.3以上才支持:

所以我這個(gè)方法還是有一點(diǎn)點(diǎn)價(jià)值的,哈哈。

解決方法一

有人會(huì)說,既然網(wǎng)頁上拉伸不了比例,那么直接把視頻用轉(zhuǎn)碼工具拉伸比例然后重新轉(zhuǎn)碼不就是了?

沒錯(cuò),這就是我說的第一種解決方法,但是這對于少量視頻沒啥問題,如果有很多個(gè)視頻,全部轉(zhuǎn)碼又重新上傳也不太現(xiàn)實(shí)。剛開始我也確實(shí)是這么做的,但是后來發(fā)現(xiàn)還有其它方法。

解決方法二

就是標(biāo)題說的,借用transform來實(shí)現(xiàn)視頻比例拉伸。分2種情況,寬高比變大和寬高比變小。

完整DEMO演示

先來看個(gè)完整的DEMO,視頻主角是我家的喵星人,阿喵說:哎呀,要露臉了,好害羞~~~

http://demo.liuxianan.com/2016/01/09/html5-video-resize/

寬高比變大

保持寬度不變,調(diào)整rotateX即可實(shí)現(xiàn)高度變小,也就是寬高比變大了。看下圖:

舉個(gè)例子,假如原始視頻分辨率是640*320(16:9),我想把它調(diào)成16:7,也就是640*280,那么:

cos θ = 新高度 / 舊高度 = 280 / 360

用js計(jì)算角度(單位是deg):

var rotate = (Math.acos(280/360)*180/Math.PI).toFixed(2); // 新高度 / 舊高度

寬高比變小

寬高比減小時(shí),以高度為基準(zhǔn),調(diào)整rotateY即可實(shí)現(xiàn)寬度變小,也就是寬高比變小了。

舉個(gè)例子,假如原始視頻分辨率是640*320(16:9),我想把它調(diào)成4:3,也就是480*320,那么:

cos θ = 新寬度 / 舊寬度 = 480 / 640

用js計(jì)算角度(單位是deg):

var rotate = (Math.acos(480/640)*180/Math.PI).toFixed(2); // 新寬度 / 舊寬度

總結(jié)

綜上,有了這2個(gè)方法就可以實(shí)現(xiàn)任意比例的視頻拉伸了,不過變形過程中需要注意位置可能發(fā)現(xiàn)的變化。

附上前面演示選擇的DEMO:

!DOCTYPE html>
html lang="zh">
head>
 meta charset="utf-8">
 meta name="viewport" content="width=device-width, initial-scale=1.0">
 title>旋轉(zhuǎn)比例模擬/title>
 style type="text/css">
.content {
 position: absolute;
 width: 400px;
 height: 300px;
 -webkit-perspective: 400px;
 perspective: 400px;
 left: 100px;
 top: 100px;
}
.wrapper {
 position: absolute;
 width: 320px;
 height: 240px;
 transform: rotateY(-30deg) rotateX(0deg);
 border: solid 2px #000;
}
.wrapper.rotate{
 transform: rotateY(-30deg) rotateX(50deg);
}
.wrapper:after {
 content: '';
 display: block;
 position: absolute;
 width: 400px;
 left: -40px;
 top: 120px;
 height: 2px;
 background: black;
}
.wrapper img{
 width: 100%;
 height: 100%;
}
 /style>
/head>
body>

 div class="content">
 div class="wrapper">
  img src="http://test.liuxianan.com/sample.jpg"/>
 /div>
 div class="wrapper rotate">
  img src="http://test.liuxianan.com/sample.jpg"/>
 /div>
 /div>
/body>
/html>

您可能感興趣的文章:
  • html form表單基礎(chǔ)入門案例講解
  • php 下 html5 XHR2 + FormData + File API 上傳文件操作實(shí)例分析
  • HTML的form表單和django的form表單
  • PHP使用HTML5 FormData對象提交表單操作示例
  • Asp.net webForm設(shè)置允許表單提交Html的方法
  • Java Web使用Html5 FormData實(shí)現(xiàn)多文件上傳功能
  • C#通過html調(diào)用WinForm的方法
  • HTML form表單提交方法案例詳解

標(biāo)簽:內(nèi)蒙古 防城港 巴彥淖爾 日照 96 定州 山南 宜賓

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《transform實(shí)現(xiàn)HTML5 video標(biāo)簽視頻比例拉伸實(shí)例詳解》,本文關(guān)鍵詞  transform,實(shí)現(xiàn),HTML5,video,標(biāo)簽,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《transform實(shí)現(xiàn)HTML5 video標(biāo)簽視頻比例拉伸實(shí)例詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于transform實(shí)現(xiàn)HTML5 video標(biāo)簽視頻比例拉伸實(shí)例詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 武穴市| 和静县| 蒙山县| 孙吴县| 齐齐哈尔市| 佛冈县| 禄丰县| 丰宁| 定兴县| 临潭县| 安塞县| 渝中区| 恩施市| 澜沧| 昭觉县| 迁西县| 从江县| 阿拉善右旗| 宣汉县| 东乡| 郧西县| 宁陵县| 漯河市| 江陵县| 海林市| 黄平县| 霍林郭勒市| 永兴县| 栾城县| 富平县| 阿勒泰市| 青铜峡市| 天气| 临安市| 大理市| 兴安县| 石柱| 平利县| 龙川县| 柞水县| 佛冈县|