zoukankan      html  css  js  c++  java
  • 5.标签篇:audio和video

    # 5.标签篇:audio和video
    - audio 和 video
    ```html
    <style>
        * {
            margin:0;
            padding:0;
        }
        .video_player{
            position:relative;
            1000px;
            height:500px;
            margin:0 auto;
        }
        video{
            position:absolute;
            1000px;
            height:500px;
            left:0;
            top:0;
        }
        .menu{
            position:absolute;
            100%;
            height:50px;
            background:rgba(0,0,0,.5);
            bottom:0;
            display:none;
        }
        .play{
            position:absolute;
            60px;
            height:30px;
            border:1px solid white;
            text-align:center;
            line-height:30px;
            border-radius:10px;
            margin:auto 0 auto 20px;
            top:0;
            bottom:0;
            cursor:pointer;
        }
        .time{
            position:absolute;
            100px;
            height:30px;
            text-align:center;
            line-height:30px;
            margin:auto 0 auto 20px;
            top:0;
            bottom:0;
            cursor:pointer;
        }
        .progress_bar{
            position:absolute;
            100%;
            height:2px;
            background:gray;
            left:0;
            top:-2px;
        }
        .progress_bar div{
            position:absolute;
            0px;
            height:2px;
            background:orange;
            left:0;
            top:0;
        }
        .progress_bar i{
            position:absolute;
            6px;
            height:6px;
            background:white;
            border-radius:3px;
            left:120px;
            top:-2px;
        }
        .quick{
            position:absolute;
            60px;
            height:30px;
            border:1px solid white;
            text-align:center;
            line-height:30px;
            color:white;
            border-radius:10px;
            margin:auto 0 auto 20px;
            top:0;
            left:800px;
            bottom:0;
            cursor:pointer;
        }
        .quick_list{
            position:absolute;
            80px;
            height:120px;
            background:pink;
            left:800px;
            top:-120px;
            color:#fff;
            background-color:rgba(0,0,0,.5);
            display:none;
        }
        .quick_list li{
            position:relative;
            100%;
            height:30px;
            text-align:center;
            line-height:30px;
            list-style:none;
            cursor:pointer;
        }
        .quick_list li:hover{
            color:green;
        }
        .vol_add{
            position:absolute;
            60px;
            height:30px;
            border:1px solid white;
            text-align:center;
            line-height:30px;
            color:white;
            border-radius:10px;
            margin:auto 0 auto 20px;
            top:0;
            left:500px;
            cursor:pointer;
        }
        .vol_ins{
            position:absolute;
            60px;
            height:30px;
            border:1px solid white;
            text-align:center;
            line-height:30px;
            color:white;
            border-radius:10px;
            margin:auto 0 auto 20px;
            top:0;
            left:580px;
            cursor:pointer;
        }
        .full_screen{
            position:absolute;
            60px;
            height:30px;
            border:1px solid white;
            text-align:center;
            line-height:30px;
            color:white;
            border-radius:10px;
            margin:auto 0 auto 20px;
            top:0;
            left:880px;
            cursor:pointer;
        }
    </style>
    <div class="video_player">
        <video src="view.mov"></video>
        <div class="menu">
            <div class="play">播放</div>
            <div class="time">0:00/0:00</div>
            <div class="progress_bar">
                <div></div>
                <i></i>
            </div>
            <div class="quick">倍速</div>
            <div class="quick_list">
                <ul>
                    <li>正常</li>
                    <li>1.25</li>
                    <li>1.5</li>
                    <li>2.0</li>
                </ul>
            </div>
            <div class="vol_add">音量加</div>
            <div class="vol_ins">音量减</div>
            <div class="full_screen">全屏</div>
        </div>
    </div>
    <script>
        var videoPlayer = document.getElementByClassName("video_player")[0];
        var menu = document.getElementByClassName("menu")[0];
        var play = document.getElementByClassName("play")[0];
        var video = document.getElementsByTagName("video")[0];
        var time = document.getElementByClassName("time")[0];
        var progressBar = document.getElementByClassName("progress_bar")[0];
        var quick = document.getElementByClassName("quick")[0];
        var quickList = document.getElementByClassName("quick_list")[0];
        var volAdd = document.getElementByClassName("vol_add")[0];
        var volIns = document.getElementByClassName("vol_ins")[0];
        var fullScreen = document.getElementByClassName("full_screen")[0];
        
        videoPlayer.onmouseenter = function(){
            menu.style.display = "block";
        };
        videoPlayer.onmouseleave = function(){
            menu.style.display = "none";
        };
        play.onclick = function(){//视频播放与暂停
            if(video.paused){//视频处于暂停状态
                video.play();//视频播放
                play.innerHTML = "暂停";
            }else{
                video.pause();//视频暂停
                play.innerHTML = "播放";
            }
        };
        setInterval(function(){
            var total = video.duration;//视频总时长
            var nowTime = video.currentTime;//当前播放时间
            time.innerHTML = parseInt(nowTime/60) + ":" + parseInt(nowTime%60) + "/" + parseInt(total/60) + ":" + parseInt(total%60);//设置播放时间
            var progressBarWidth = nowTime / total * progressBar.clientWidth;
            progressBar.getElementsByTagName("div")[0].style.width = width + "px";
            progressBar.getElementsByTagName("i")[0].style.left = width + "px";
        }, 1000);
        progressBar.onmouseenter = function(){
            progressBar.style.height = "14px";
            progressBar.style.top = "-14px";
            progressBar.getElementsByTagName("div")[0].style.height = "14px";
            progressBar.getElementsByTagName("i")[0].style.height = "18px";
        };
        progressBar.onmouseleave = function(){
            progressBar.style.height = "2px";
            progressBar.style.top = "-2px";
            progressBar.getElementsByTagName("div")[0].style.height = "2px";
            progressBar.getElementsByTagName("i")[0].style.height = "6px";
        };
        progressBar.onclick = function(e){
            var location = e.layerX;
            var width = progressBar.clientWidth;
            var targetTime = location / width * video.duration;
            video.currentTime = targetTime;//只有在响应头(Response Headers)里面有Content-Range属性,才能进行进度跳转,否则不能进行跳转
        };
        quick.onclick = function(){
            quickList.style.display = "block";
        }
        quick.onmouseleave = function(){
            quickList.style.display = "none";
        }
        var liList = quickList.getElementsByTagName("ul")[0].getElementsByTagName("li");
        for(var i = 0; i < liList.length; i++){
            list[i].index = i;
            list[i].onclick = function(){
                if(this.index == 0){//正常
                    video.playbackRate = 1;//设置速率
                    quick.innerHTML = "倍速";
                }else if(this.index == 1){//1.25
                    video.playbackRate = 1.25;
                    quick.innerHTML = "x 1.25";
                }else if(this.index == 2){//1.5
                    video.playbackRate = 1.5;
                    quick.innerHTML = "x 1.5";
                }else if(this.index == 3){//2
                    video.playbackRate = 2;
                    quick.innerHTML = "x 2";
                }
            }
        }
        volAdd.onclick = function(){
            video.volume = video.volume + 0.1 > 1 ? 1 : video.volume + 0.1;
        }
        volIns.onclick = function(){
            video.volume = video.volume - 0.1 < 0 ? 0 : video.volume - 0.1;
        }
        fullScreen.onclick = function(){
            var dom = document.documentElement;
            dom.requestFullscreen();//全屏
            videoPlayer.style.width = window.screen.width + "px";
            videoPlayer.style.height = window.screen.height + "px";
            video.style.style.width = window.screen.width + "px";
            video.style.style.height = window.screen.height + "px";
        }
        videoPlayer.onmousemove = function(){
            //利用函数防抖控制菜单隐藏,未实现
            menu.style.display = "block";
        };
    </script>
    ```
     
    以上是markdown格式的笔记
  • 相关阅读:
    Codeforces 787D. Legacy 线段树优化建图+最短路
    Codeforces 1051E. Vasya and Big Integers
    BZOJ3261 最大异或和
    BZOJ3531 SDOI2014 旅行
    洛谷P2468 SDOI 2010 粟粟的书架
    2018 ICPC 焦作网络赛 E.Jiu Yuan Wants to Eat
    HDU6280 From Tree to Graph
    HDU5985 Lucky Coins 概率dp
    (HDU)1334 -- Perfect Cubes (完美立方)
    (HDU)1330 -- Deck (覆盖物)
  • 原文地址:https://www.cnblogs.com/lanshanxiao/p/12976809.html
Copyright © 2011-2022 走看看