halo,你們好,我又來了::>_<::css
以前還說寫完 fre 寫 smox 2.0 來着,然而咱們網站的小夥伴實在是忍不了播放器的 bug 了html
催着我給播放器修 buggit
由於當時寫 ep 的時候,正值 c 站初期糊屎階段,代碼質量堪憂,我實在是也懶得修了,打算直接重寫github
重寫總得有個理由什麼的::>_<::好比研究個新特性什麼的……web
web-components 很不幸,被我看上了::>_<::api
感覺下,顏值……順帶演示地址:eplayer.js.org/瀏覽器
dom,這是一個 web-components 組件dom
<e-player src="./001.mp4"></e-player>
複製代碼
css,可選,用於穿透 shadow-dom 預留的默認樣式,默認爲藍色網站
e-player {
/* 進度條底色 */
--progress:rgba(255,255,255,.3);
/* 進度條偏移顏色 */
--buffer:#f2e;
/* 按鈕顏色 */
--dot:#f2e;
/* 圖標顏色 */
--icons:#fff
}
複製代碼
以上,是否是很驚豔,有種原生的逼格!畢竟基於 web-components 嘛,該有的都有√ui
好比 沙雕 dom,看着就刺激::>_<::
我儘量的誇誇它,好處::>_<::
特別適合播放器這種場景,就是我用 沙雕 dom 隔離了,外部的 css 就不會干擾了
這就保證了 ep 接入到任何網站,樣式都不會有影響√
可是除了這個好處,scoped css 真實超級萬年大坑,待會兒再說
沙雕 dom 的好處就是,它不感染 主 dom tree,也就是說你在沙雕裏操做 dom,把沙雕操做死了,主 dom tree 也能夠繼續喝茶::>_<::
以上,好像就這點好處了,對於播放器而言,不得不說,是絕配
可是仍是遇到了不少大坑,咱們一個一個的來
沒錯,超級大坑,直接剝奪了 css 複用的能力
這意味着,reset 沒用了,定製主題啥的也沒用了
好在,我仍是找到了多種「穿透」方法
目前,已知能夠穿透 scoped css 的方法:
感謝我吧::><::別地兒確定沒有::><::他們早就認命了::>_<::
雖然都不經常使用……
具體怎麼使用,能夠看 eplayer 的使用方法哈,由於它各類騷操做都用上了
你會發現,font-face 在沙雕 dom 裏是無效的,我也找到了解決方法
就是,font-face 放全局,font-class 放沙雕
而後 css 必定要後置,什麼是後置,就是……操做 dom 算後置,@import 也是後置
這個不用擔憂,eplayer 這塊是沒問題的,icon 也是很是好看的
很不幸啊!這兼容超級很差啊!
什麼國產瀏覽器,搜狗啊啥的都不支持 沙雕 dom 的渲染啊啊啊啊
就這麼瞧不起沙雕的嘛::>_<::
有的也支持渲染,可是會出現一些 api 的問題,這個好型,我當 bug 修……
一言難盡啊::>_<::只求你們都來玩沙雕,玩的人多了,兼容也就行了
謝謝你們閱讀哈!eplayer 做爲 c站的播放器,後續會繼續更新的安心西路!
最後附上 github 地址:github.com/132yse/epla…
官網地址:eplayer.js.org/
C 站地址:www.clicli.top
(⊙o⊙)…廣告三連,歡迎試用與 star!