国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

談?wù)劤R奌5制作方法——視頻與CSS3

tracy / 2567人閱讀

摘要:但目前白名單申請途徑已經(jīng)關(guān)閉。目前在安卓有一種同層播放器的解決方案。可解決安卓機(jī)自動全屏以及視頻播放完畢會跳出廣告的問題,并且可以實(shí)現(xiàn)交互。

本文在H5動效的常見制作手法的基礎(chǔ)上,對相印的H5動效制作手法進(jìn)行了擴(kuò)展和整理,并結(jié)合案例談?wù)勗趺磳⑵渥龅蒙鷦印?/p> 視頻類 1、體驗(yàn)案例

視頻類h5可以帶給用戶動效逼真,流暢的體驗(yàn)。雖然說制作視頻的難度較大,但是瑕不掩瑜,一支視頻可以盡可能地創(chuàng)造出天馬行空的想法,一些短時(shí)間內(nèi)無法通過代碼創(chuàng)造出的酷炫效果。
首先放上兩個(gè)案例供大家體驗(yàn)。

1) 金館長直播間

實(shí)現(xiàn)還是比較簡單的,交互就是通過用戶點(diǎn)擊無縫切換不同的視頻,基本每個(gè)能按到的tab都可以對應(yīng)一支視頻,讓用戶很有參與感

2) QQ錢包二周年

其中三支視頻的交互在于可以由用戶拖動滑塊,通過設(shè)置currentTime實(shí)時(shí)控制視頻進(jìn)度,拖動到末端時(shí)觸發(fā)視頻播放事件。我覺得也是很有趣的。

2、基本概念

想在H5中靈活運(yùn)用視頻,必須對video相關(guān)的屬性、Api有個(gè)大致的了解,這里首先對最基本的進(jìn)行普及一下。

1) 標(biāo)簽屬性

src :視頻地址

width height :視頻寬高(px) h5中可指定為當(dāng)前設(shè)備屏幕寬高

poster:視頻封面,沒有播放時(shí)顯示的圖片

preload:預(yù)加載

autoplay:自動播放

loop:循環(huán)播放

controls:瀏覽器自帶的控制條

webkit-playsinline="true" | playsinline : 禁止 iPhone Safari 視頻自動全屏

x-webkit-airplay="true"支持Airplay的設(shè)備(如:音箱、Apple TV)播放

2) video DOM常用相關(guān)屬性及方法

事件 描述
canplaythrough 表示資源緩沖完畢,可以播放
durationchange 資源長度改變,執(zhí)行一次
play 資源實(shí)際開始播放,autoplayplay()都會觸發(fā)play事件
playing 同上 執(zhí)行一次
pause pause()時(shí)觸發(fā)
progress 資源播放過程中多次執(zhí)行
ended 結(jié)束時(shí)觸發(fā) loop時(shí)不觸發(fā)該事件
屬性 描述
currentSrc 返回資源地址
currentTime 返回當(dāng)前播放進(jìn)度,可設(shè)置
duration 返回資源總時(shí)長
paused 資源是否已停止
ended 資源是否已播完
方法 描述
play() 播放資源
pause() 暫停資源
load() 重新加載src指定的資源

以上說的是比較常用的方法屬性,更詳細(xì)的可參考HTML5 Audio/Video 標(biāo)簽,屬性,方法,事件匯總

3、常見坑

說了這么多,來看看一些難以繞過的坎。其實(shí)相信很多同行在H5上運(yùn)用video時(shí),得到的效果未必那么近乎人意。

其中視頻類H5很大的一個(gè)坑是:在微信X5瀏覽器打開時(shí),視頻會自動全屏播放,并且結(jié)束時(shí)會出現(xiàn)騰訊視頻的廣告。

目前在IOS下這兩個(gè)問題已經(jīng)得到了解決:即在標(biāo)簽下添加屬性webkit-playsinline="true"playsinline

部分安卓機(jī)可以通過這兩個(gè)屬性解決。但有些還是不行。具體什么機(jī)型,待測試…

這個(gè)問題是由于微信團(tuán)隊(duì)對視頻來源進(jìn)行了域名限制,只有掛載在qq域名下的H5才能避免上述的問題。但目前白名單申請途徑已經(jīng)關(guān)閉。在等待未來的更新能把這個(gè)問題解決的同時(shí),針對安卓機(jī),根據(jù)前輩經(jīng)驗(yàn),有以下這兩種嘗試方法。

1) 使用canvas實(shí)時(shí)繪制
細(xì)節(jié)可參考 HTML5 視頻直播
本人嘗試過使用上文提到的jsmpg.js解碼,可行性比較高。但是聲音就無法由canvas播放了。
*注意jsmpg.hs只支持解碼mpeg格式的視頻。所以需要使用ffmpeg 對非mpeg格式視頻進(jìn)行轉(zhuǎn)換。

核心js

var canvas = document.getElementById("jsmpegCanvas");
var player = new jsmpeg("mov.mpg", {canvas:canvas, autoplay:true, loop: true});

其主要思路是利用jsvideo實(shí)時(shí)解碼,再利用canvas渲染幀。由于提到的兩個(gè)js轉(zhuǎn)換器沒有提供設(shè)置canvas寬高的Api,所以可以嘗試通過scale使canvas全屏。

之前有嘗試過在同一個(gè)頁面里讓video播放,visibility設(shè)為hidden,直接利用requestAnimationFrame對每一幀進(jìn)行canvasdrawImage。然而在安卓下只要有播放的video就仍然會自動全屏。

2) 目前在安卓有一種同層播放器的解決方案。可解決安卓機(jī)自動全屏以及視頻播放完畢會跳出廣告的問題,并且可以實(shí)現(xiàn)交互。

通過video屬性x5-video-player-type聲明啟用同層H5播放器?

使用x5--video--player--fullscreen自己重新適配新的視口大小 因?yàn)槟J(rèn)是進(jìn)入全屏播放。

但發(fā)現(xiàn)在video+滑屏觸發(fā)時(shí),發(fā)現(xiàn)存在很明顯的閃屏現(xiàn)象,并且不能自動播放。還有一個(gè)問題是video在播放時(shí),背景音樂會失效。該方案仍有待測試,歡迎各位同行交流。

CSS3動畫類

純CSS3的H5可以參考VM團(tuán)隊(duì)的那幾個(gè)。僅僅利用CSS3制作出非常炫酷的效果,必須對CSS3的運(yùn)用非常純屬才行。
之前寫過一篇關(guān)于CSS3打造H53D方面的文章,大家可以參考下。
3D無疑是CSS3在H5中的一種靈活運(yùn)用方式。再提一下其他的CSS3表現(xiàn)形式。

1、幀動畫

看一個(gè)案例——陌陌宣傳H5

截圖是某部分動畫的序列幀,雖然不是特別連貫,但體驗(yàn)的效果并不差。

這里的實(shí)現(xiàn)方式是通過JS每隔一定時(shí)間切換class改變背景圖的background-position
放上一個(gè)Demo大家體驗(yàn)

除了通過JS實(shí)時(shí)控制以外,還可以使用CSS3animation

首先需要將每一幀拼接成雪碧圖,這里的例子還是使用上述圖片。

通過keyframes設(shè)置每幀background-position 需要把每一幀都寫入,較為繁瑣

@-webkit-keyframes fresh {
    0% {
        background-position:-600px -1467px;
        }
    4.34% {
        background-position:-600px -978px;
        }
    ...
    100% {
        background-position:-900px -489px;
        }
    }

.bg下添加animation屬性

    animation: fresh steps(1,end) 4s infinite;
    -webkit-animation: fresh steps(1,end) 4s infinite;
    

另外有一種比較簡單的方法,需要將每一幀按順序拼合好雪碧圖。如雪碧圖從左至右必須是連貫的幀。比如這種

代碼寫成如下形式便可

   @-webkit-keyframes fresh {
    0% {
        background-position: 0 0;
        }
    100% {
        background-position:-900px 0;
        }
    }

    animation: fresh steps(4,end) 4s infinite;
    -webkit-animation: fresh steps(4,end) 4s infinite;
2、補(bǔ)間動畫

補(bǔ)間動畫用CSS3表現(xiàn)起來就是最基本的transform結(jié)合 transition animation形成位移、形變、旋轉(zhuǎn)等動畫。可以將逐幀動畫以外的旋轉(zhuǎn)變換動畫看成是補(bǔ)間動畫。

想要做出能吸引用戶的補(bǔ)間動畫,可以從以下四個(gè)方面入手。

1) 明確每一個(gè)物件在每一時(shí)刻的動效

動畫屬性分解表 (via ISUX-H5動效的常見制作手法)

2)使用《動畫十二法則》
建議細(xì)讀 譯文-網(wǎng)頁動畫的十二原則,了解動畫制作的必要元素,怎么使自己做出的動畫連貫自然。動效可以異想天開,盡可能夸張,但還是得復(fù)合物體的物理運(yùn)動規(guī)則。

十二法則在h5動效上用得比較多的有
擠壓、拉伸,預(yù)備動作,夸張,彰顯特性,跟隨,節(jié)奏等

看兩個(gè)小案例


關(guān)注最左邊紅色小罐

下落時(shí)先有個(gè)向右的傾斜動畫,再倒向左邊。這符合預(yù)備動作

然后抖動幾下才緩緩?fù)O拢?strong>緩出效果

如果紅色小罐下落到觸地有個(gè)拉伸擠壓的過程,會使動畫顯得比較Q彈

而最右邊的葡萄酒瓶,里面的酒跟隨著酒瓶的運(yùn)動。

天鵝上下漂浮,節(jié)奏起伏滿足正余弦函數(shù),符合在水中緩緩浮沉的感覺

漣漪慢慢擴(kuò)散 人物的發(fā)箍跟隨她上下起伏

圖片來自追波和站酷,侵刪。

3)關(guān)注轉(zhuǎn)場動畫
轉(zhuǎn)場動畫運(yùn)用了《動畫十二法則》逐幀法則,目的是使場景轉(zhuǎn)換變得前后有一定的銜接性,可用于H5某一屏的切換還有某一些響應(yīng)用戶行為的動作。所以很多時(shí)候可以將簡單的每屏推進(jìn)推出,換成一種前后有關(guān)聯(lián)的形式進(jìn)行場景切換。

這篇文章已經(jīng)將思路理得很清晰,這里就不再細(xì)說了。
功能性動畫UX設(shè)計(jì)——打造優(yōu)秀的過渡轉(zhuǎn)場效果

4)善用工具
10 個(gè)值得前端收藏的 CSS3 動效庫

還有一個(gè)比較常用的工具 貝塞爾曲線CSS生成
貝塞爾曲線可用于animation或者transitiontime-funtion上,可形成某些比較特殊的動畫效果。看一個(gè)運(yùn)用實(shí)例 貝塞爾曲線制作彈性動畫

其實(shí)原理十分簡單
上圖的運(yùn)動可以用下面這個(gè)貝塞爾曲線表示,其中曲線的斜率可看成速度,這樣就好理解了。

今天先談到這里,下篇文章會帶來H5 SVG的玩法。
^^感謝您的閱讀。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/11014.html

相關(guān)文章

  • css相關(guān) - 收藏集 - 掘金

    摘要:在正式前端一些小細(xì)節(jié)前端掘金英文原文,翻譯未來的太讓人興奮了一方面,是全新的頁面布局方式另一方面,是酷炫的濾鏡顏色等視覺效果。老司機(jī)教你更好的進(jìn)行編程個(gè)技巧前端掘金并不總是容易處理。 CSS3 實(shí)現(xiàn)文字流光漸變動畫 - 前端 - 掘金來自百度前端技術(shù)學(xué)院的實(shí)踐任務(wù):有趣的鼠標(biāo)懸浮模糊效果,參考:http://ife.baidu.com/course/d...,用CSS3實(shí)現(xiàn)了一下,順便...

    molyzzx 評論0 收藏0
  • 前端面試整理

    摘要:新布局基本數(shù)據(jù)類型,幾種種也是返回類型非負(fù)區(qū)別創(chuàng)建對象的方式閉包的理解原型鏈原理手寫判斷是一個(gè)數(shù)組深拷貝原生操作創(chuàng)建元素刪除元素你覺得有哪些好處還用過什么工具庫事件委托事件理解規(guī)范怎么寫插件怎么給數(shù)組原型添加方法怎么合并兩個(gè)對象常 h5 html5 新api storage geolocation history webworker indexDB websocket can...

    yvonne 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<