jquery html5 css3,HTML5,CSS3,jQuery 自制 video 播放器~~值得借鉴哦~~~

刁远
2023-12-01

首先说这是一个神奇的播放器,为什么神奇呢,先直接看最终成果:

不用 object 或者 embed 标签插入就能完成 video 的播放,那要感谢 html5 和 css3 的强大功能了,详细了解:

http://webdesign.tutsplus.com/tutorials/site-elements/skin-orman-clarks-video-interface-using-jplayer-and-css

现在我们就 step by step 的详细指导吧,大家千万不要嫌长哦,不敢兴趣的地方可以直接略过,主要是为了保持文章的完整性 O(∩_∩)O:

step1:HTML5 标记

1

2

3

4

5

6

7

8

9

10

11

12

13

Step 2: 下载 jPlayer 插件

插件地址:jplayer.org

然后在 head 里面引用,当然是基于 Jquery 的插件

Step 3: Player 标记

html 如下:

Update Required Here's a message which will appear if the video isn't supported. A Flash alternative can be used here if you fancy it.

Step 4: Controls 标记

html 如下:

1

2

3

4

5

play

pause

1

/

1

2

3

4

5

mute

unmute

1

2

3

fullscreen

restorescreen

主要包含:

播放,停止按钮

进度条

时间提醒

静音切换

卷栏

全屏切换

Step 5: 添加视频

jPlayer 插件目前支持以下视频格式:

mp3

mp4 (AAC/H.264)

ogg (Vorbis/Theora)

webm (Vorbis/VP8)

wav

使用代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

//

$(document).ready(function(){

$("#jquery_jplayer_1").jPlayer({

ready:function(){

$(this).jPlayer("setMedia",{

m4v:"mi4.m4v",

ogv:"mi4.ogv",

webmv:"mi4.webm",

poster:"mi4.png"

});

},

swfPath:"js",

supplied:"webmv, ogv, m4v",

size:{

width:"570px",

height:"340px",

cssClass:"jp-video-360p"

}

});

});

// ]]>

Step 6: Video 基本样式

css 代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,and,address,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video,input,textarea,select{background:transparent;border:0;font-size:100%;margin:0;outline:0;padding:0;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}abbr[title],dfn[title]{border-bottom:1pxdotted;cursor:help}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:none}del{text-decoration:line-through}hr{background:transparent;border:0;clear:both;color:transparent;height:1px;margin:0;padding:0}mark{background-color:#ffffb3;font-style:italic}input,select{vertical-align:middle}ins{background-color:red;color:white;text-decoration:none}ol,ul{list-style:none}table{border-collapse:collapse;border-spacing:0}a{text-decoration:none;}

body{

margin:0;

padding:0;

background:url("bg.jpg")repeat;

}

.jp-video{

font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;

position:relative;

-webkit-box-shadow:0px0px20pxrgba(0,0,0,.3);

-moz-box-shadow:0px0px20pxrgba(0,0,0,.3);

box-shadow:0px0px20pxrgba(0,0,0,.3);

}

.jp-video-360p{

width:570px;

margin:100pxauto;

}

.jp-video-full{

width:480px;

height:270px;

position:static!important;

position:relative

}

.jp-video-full.jp-jplayer{

top:0;

left:0;

position:fixed!important;position:relative;/* Rules for IE6 (full-screen) */

overflow:hidden;

z-index:1000;

}

.jp-video-full.jp-gui{

position:fixed!important;position:static;/* Rules for IE6 (full-screen) */

top:0;

left:0;

width:100%;

height:100%;

z-index:1000;

}

.jp-video-full.jp-interface{

position:absolute!important;position:relative;/* Rules for IE6 (full-screen) */

bottom:0;

left:0;

z-index:1000;

}

Step 7: 基本控制样式

css 样式如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

.jp-interface{

position:relative;

width:100%;

height:35px;

background-image:-webkit-linear-gradient(top,rgb(242,242,242),rgb(209,209,209));

background-image:-moz-linear-gradient(top,rgb(242,242,242),rgb(209,209,209));

background-image:-o-linear-gradient(top,rgb(242,242,242),rgb(209,209,209));

background-image:-ms-linear-gradient(top,rgb(242,242,242),rgb(209,209,209));

background-image:linear-gradient(top,rgb(242,242,242),rgb(209,209,209));

filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#f2f2f2',EndColorStr='#d1d1d1');

-webkit-box-shadow:

inset0px1px0px#f7f7f7,

inset0px-1px0px#e2e2e2;

-moz-box-shadow:

inset0px1px0px#f7f7f7,

inset0px-1px0px#e2e2e2;

box-shadow:

inset0px1px0px#f7f7f7,

inset0px-1px0px#e2e2e2;

}

div.jp-controls-holder{

clear:both;

width:570px;

margin:0auto;

position:relative;

overflow:hidden;

}

Step 8: 停止播放按钮

css 样式如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

a.jp-play,

a.jp-pause{

width:40px;

height:35px;

float:left;

text-indent:-9999px;

outline:none;

}

a.jp-play{

background:url("sprite.png")00no-repeat;

}

a.jp-pause{

background:url("sprite.png")-40px0no-repeat;

display:none;

}

.separator{

background-image:url("separator.png");

background-repeat:no-repeat;

width:2px;

height:35px;

float:left;

margin-top:7px;

margin-right:10px;

}

Step 9: 进度条样式

css 样式如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

.jp-progress{

background:#706d6d;

-webkit-border-radius:5px;

-moz-border-radius:5px;

border-radius:5px;

-webkit-box-shadow:

inset0px1px4pxrgba(0,0,0,.4),

0px1px0pxrgba(255,255,255,.4);

-moz-box-shadow:

inset0px1px4pxrgba(0,0,0,.4),

0px1px0pxrgba(255,255,255,.4);

box-shadow:

inset0px1px4pxrgba(0,0,0,.4),

0px1px0pxrgba(255,255,255,.4);

width:280px;

height:10px;

float:left;

margin-top:13px;

}

.jp-seek-bar{

width:0px;

height:100%;

cursor:pointer;

}

.jp-seeking-bg{

background:#575555;

-webkit-border-radius:5px;

-moz-border-radius:5px;

border-radius:5px;

}

.jp-play-bar{

background:url("play-bar.png")leftrepeat-x;

width:0px;

height:10px;

position:relative;

z-index:9999;

-webkit-border-radius:5px;

-moz-border-radius:5px;

border-radius:5px;

}

.jp-play-barspan{

position:absolute;

top:-3px;

right:-12px;

background:url("handle.png")no-repeatcenter;

width:16px;

height:17px;

}

Step 10: 当前时间 / 持续时间的 css 样式

css 样式如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

.jp-current-time,

.jp-duration{

font-size:11px;

font-family:Arial;

color:#444444;

margin-top:12px;

float:left;

}

.jp-current-time{

float:left;

display:inline;

}

.jp-duration{

float:left;

display:inline;

text-align:right;

}

.jp-video.jp-current-time{

margin-left:10px;

}

.jp-video.jp-duration{

margin-right:10px;

}

.time-sep{

float:left;

margin:13px3px03px;

font-size:11px;

font-family:Arial;

color:#444444;

}

第 11 步: 卷按钮和栏

css 样式如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

.jp-videoa.jp-mute,

.jp-videoa.jp-unmute{

text-indent:-9999px;

float:left;

height:35px;

outline:none;

}

.jp-mute{

float:left;

background:url(../images/sprite.png)-80px0no-repeat;

margin-top:1px;

margin-left:-10px;

width:35px;

}

a.jp-unmute{

background:url(../images/sprite.png)-115px0no-repeat;

margin-top:1px;

margin-left:-13px;

display:none;

width:38px;

}

.jp-volume-bar{

float:left;

margin-top:13px;

margin-right:10px;

overflow:hidden;

width:70px;

height:10px;

cursor:pointer;

background:#706d6d;

-webkit-border-radius:5px;

-moz-border-radius:5px;

border-radius:5px;

-webkit-box-shadow:

inset0px1px4pxrgba(0,0,0,.4),

0px1px0pxrgba(255,255,255,.4);

-moz-box-shadow:

inset0px1px4pxrgba(0,0,0,.4),

0px1px0pxrgba(255,255,255,.4);

box-shadow:

inset0px1px4pxrgba(0,0,0,.4),

0px1px0pxrgba(255,255,255,.4);

}

.jp-volume-bar-value{

background:transparent;

width:0px;

height:10px;

position:relative;

}

.jp-volume-bar-valuespan{

position:absolute;

top:0px;

right:0px;

background:url(../images/volume.png)no-repeatcenter;

width:11px;

height:10px;

}

第 12 步: 全屏按钮

CSS 样式如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

.jp-full-screen{

background:url(../images/sprite.png)-150px0no-repeat;

float:left;

width:40px;

height:35px;

text-indent:-9999px;

margin-left:-15px;

outline:none;

}

.jp-restore-screen{

background:url(../images/sprite.png)-150px0no-repeat;

float:left;

width:40px;

height:35px;

text-indent:-9999px;

margin-left:-15px;

outline:none;

}

哈哈,到这里我们的 video player 就完成了,是不是代码很多,看得头大,其实不用那么紧张,我们只需要看关键地方就行了,比如说,了解那个 player 是如何使用的,还有具体的界面也有对应的 CSS 注释,关键是这些代码可以单独提取出来复用,仅供给大家自制播放器的时候提供一个参考,感谢伟大的 coder 的默默无闻奉献,上帝会一直眷顾你们的,阿门~~~

 类似资料: