《JavaScript DOM编程艺术》HTML5新特性之video

1 html页面

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>movie</title>
    <link rel="stylesheet" type="text/css" href="play.css">
</head>
<body>
<div class="video-wrapper">
    <video id="movie" controls>
        <source src="movie.mp4"/>
        <source src="movie.ogg" type='video/ogg; codecs="theora,vorbis"'/>
        <p>download movie as
            <a href="movie.mp4">mp4</a>,
            or<a href="movie.ogg">ogg</a>
        </p>
    </video>
</div>
<script src="play.js"></script>
</body>
</html>




2 js代码

 

首先找到页面的video元素,对其分别应用addControls函数
addControls函数中,删除了video元素原来的Controls属性去掉其内置的空间,添加了几个DOM对象充当play/pause按钮,并把他们添加到video元素的子元素。
play按钮添加一个click事件,以便单击它播放影片:
利用playpauseended事件来修改play按钮的状态,并在影片未暂停情况下显示pause按钮。

function createVideoControls(){
    var vids=document.getElementsByTagName('video');
    for(var i=0;i<vids.length;i++){
        addControls(vids[i]);
    }
}

function addControls(vid){
    vid.removeAttribute('controls');
    vid.height=vid.videoHeight;
    vid.width=vid.videoWidth;
    vid.parentNode.style.height=vid.videoHeight+'px';
    vid.parentNode.style.width=vid.videoWidth+'px';

    var controls=document.createElement('div');
    controls.setAttribute('class','controls');

    var play=document.createElement('button');
    play.setAttribute('title','play');
    play.innerHTML='►';

    controls.appendChild(play);
    vid.parentNode.insertBefore(controls,vid);
    play.οnclick=function(){
        if(vid.ended){
            vid.currentTime=0;
        }
        if(vid.paused){
            vid.play();
        }else{
            vid.pause();
        }
    };
    vid.addEventListener('play',function(){
        play.innerHTML='▐▐';
        play.setAttribute('paused',true);
    },false);

    vid.addEventListener('pause',function(){
        play.setAttribute('paused');
        play.innerHTML='►';
    },false);

    vid.addEventListener('ended',function(){
        vid.pause();
    },false);
}

window.οnlοad=function(){
    createVideoControls();
}

3 css

.video-wrapper{
    overflow:hidden;
}

.video-wrappper .controls{
    position: absolute;
    height: 30px;
    width: 30px;
    margin: auto;
    background: rgba(0,0,0,0.5);
}

.video-wrapper button{
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    cursor: pointer;
    font-size: 17px;
    color: #fff;
    background: transparent;
}

.video-wrapper button[paused]{
    font-size: 12px;
}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值