從塊級元素和行內元素的分析到bfc的布局理解
接口和屬性介紹
播放器提供了progressMakers屬性,是一個數組類型,每一條記錄包含offset時間和text打點的內容,還可以包含其他屬性,此屬性用於告訴播放器進度條打點記錄,記錄內容屬性說明:
名稱 類型 說明
offset Number 打點的視頻偏移時間,單位:秒
text String 打點的文本信息,默認UI會使用
isCustomized Boolean 是否使用默認UI,不使用設置為true
事件
Aliplayer提供兩個事件:鼠標進入進度條上的打點和鼠標離開進度條上的打點。
//鼠標進入進度條上的打點
player.on(‘markerDotOver‘, function(data) {
let params = data.paramData,
progressMarker = params.progressMarker, //打點記錄信息
left = params.left; //打點的離播放器左邊的距離
});
//鼠標離開進度條上的打點
player.on(‘markerDotOut‘, function() {
});
相關接口
為了方便打點內容的編輯提供了下面的接口:
接口名稱 參數 說明
enterProgressMarker 無 播放器進入打點編輯狀態,在seek操作完成時,不會播放視頻
exitProgressMarker 無 播放器退出打編輯狀態,在seek操作完成時,會繼續播放視頻
isInProgressMarker 無 是否是打點編輯狀態
getProgressMarkers 無 獲取打點數組
功能使用
下面會介紹播放器如何輔助用戶進行打點信息的生成和維護。
打點Seek操作
用戶在生成打點內容的時候,希望在seek操作時,視頻不要播放,這時候就需要讓播放器進入打點編輯狀態,並且在seek完成時,能夠得到當前seek到的時間,這樣就可以進行時間和內容對應關系的編輯。
創建播放器時,訂閱completeSeek事件,代碼如下:
player.on(‘completeSeek‘,function(e){
console.log(‘seek完成:‘+ e.paramData);
//seek完成::12.875738146938774 單位為秒
});
如果希望seek結束時畫面時靜止的,使用的代碼如下:
<button click="switchProgressMarker()">開始打點</button>
var switchProgressMarker = ()=>{
if(!player.isInProgressMarker())
{ //如果為進入編輯狀態,調用enterProgressMarker
player.enterProgressMarker();
}
else
{
//如果為已經是編輯狀態,調用exitProgressMarker退出
player.exitProgressMarker();
}
}
播放顯示打點
打點信息通過在創建播放器的時候傳給播放器,代碼如下:
var player = new Aliplayer({
id: "player-con",
source: "//common.qupai.me/player/qupai.mp4",
width: "100%",
height: "500px",
autoplay: true,
progressMakers:[
{offset:0,text:‘阿裏視頻雲端到雲到端服務的重要一環‘},
{offset:10,text:‘除了支持點播和直播的基礎播放功能外‘},
{offset:20,text:‘深度融合視頻雲業務‘},
{offset:30,text:‘為用戶提供簡單、快速、安全、穩定的視頻播放服務‘},
{offset:40,text:‘安裝播放器Demo進行體驗‘},
{offset:50,text:‘開發人員請點擊SDK下載‘}
],
}, function (player) {
console.log("播放器創建成功");
});
塊級元素:塊級元素占據其父元素(容器)的整個空間,因此創建了一個“塊”。通俗的講: 一個div,它的height:20px; width:20px;,div的大小就是這個高乘以寬的區域。
行內元素: 一個行內元素只占據它對應標簽的邊框所包含的空間。eg: <span>1</span>:行內元素占據的是1這個內容區的空間。
塊級元素與行內元素的區別
塊級元素,可以設置寬高(width, height),可以設置全部方向的margin,padding值(四個方向都可以),會新起一行(即兩個塊級元素在一起會,變成兩行,與塊級元素的寬度無關,即使父級div的寬度為100px,子級兩個div的寬度只有10px,兩個子級div也會上下排列,除非設置了float.)。
第二個div另起了一行。
塊級元素具體有:
div、p、h1-h6、form、ul、ol、dl、dt、dd、li、table、tr、td、th、hr、blockquote、address、table、menu、pre
HTML5:header、section、article、footer等等
行內元素:行內元素不能設置width,height,還有不能試試margin的top和bottom但是可以設置margin的left和right,可以設置padding的四個方向。行內元素都是在同一行的。但是有一些特殊的行內元素如input,img等他們是替換元素:<img>、<input>、<textarea>、<select>、<object>,他們可以設置寬高。
下面的元素都是行內元素:
b, big, i, small, tt
abbr, acronym, cite, code, dfn, em, kbd, strong, samp, var
a, bdo, br, img, map, object, q, script, span, sub, sup
button, input, label, select, textarea
BFC:塊級格式化:是布局過程中生成塊級盒子的區域,也是浮動元素與其他元素的交互限定區域.(通俗講是實驗兩欄布局,一欄固定,一欄自適應)還有三欄布局也是同樣的原理,下面代碼實現的是兩欄布局。
註意:
塊格式化上下文包含創建它的元素內部的所有內容.
塊格式化上下文對浮動定位(參見 float)與清除浮動(參見 clear)都很重要。浮動定位和清除浮動時只會應用於同一個BFC內的元素。浮動不會影響其它BFC中元素的布局,而清除浮動只能清除同一BFC中在它前面的元素的浮動。外邊距折疊(Margin collapsing)也只會發生在屬於同一BFC的塊級元素之間。
實現代碼如下:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<div class="container">
<div class="www".dasheng178.com"left">www.fengshen157.com</div>
<div class="main"></div>
</div>
<!-- <div class="www".haomem178.cn "dd">1</div>
<div class="dd">1</div>
<input class="dd" value="1"/>
<input class="dd"/>
<span class="dd">1</span>
<img class="dd"/> -->
</body>
<style type="text/css">
.container{
width: 100%;
height:300px;
padding-left:200px;
}
.left{
left:0;
width:200px;
background: red;
height: 100px;
margin-left:-www.tiaotiaoylzc.com/ 200px;
float: left;
}
.main {
width:100%;
padding-left: 200px;
height:100px;
background: blue;
float: left;
}
/*.dd{
border:1px solid #18E;
margin: 10px;
height:www.mcyllpt.com 200px;
width:300px;
padding:20px;
}*/
</style>
</html>
從塊級元素和行內元素的分析到bfc的布局理解