zoukankan      html  css  js  c++  java
  • 视频播放滚动条(最终完善版)

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>拖动效果</title>
    <style type="text/css">
    *{margin:0;padding:0;}
    ul,li{list-style-type:none;}
    img{border:0;}
    a{color:#ccc;text-decoration:none;}
    a:hover{color:#ccc;text-decoration:underline;}
    .wrapper{position:relative;800px;height:180px;overflow:hidden;margin:0 auto;border:1px solid #ccc;}
    .wrapper .videoContent{position:absolute;top:10px;left:0;height:150px;}
    .videoContent li{float:left;}
    .videoContent a{display:block;100px;height:100px;margin-right:10px;border:1px solid red;vertical-align:middle;text-align:center;line-height:100px;}
    .wrapper .btnDiv{position:absolute;left:0;bottom:20px;100%;height:6px;background:#000;cursor:pointer;overflow:hidden;}
    .wrapper .btn{position:absolute;left:0;bottom:13px;40px;height:20px;border:0;background:blue;cursor:pointer;overflow:hidden;}
    .pre{display:block;position:absolute;top:40px;left:0;30px;height:20px;background:#ccc;line-height:20px;cursor:pointer;}
    .next{display:block;position:absolute;top:40px;right:0px;30px;height:20px;background:#ccc;line-height:20px;cursor:pointer;}
    </style>
    </head>

    <body>
    <div class="wrapper" id="wrapper">
        <ul id="videoContent" class="videoContent">
            <li><a href="#" target="_blank">拖动的内容</a></li>
            <li><a href="#" target="_blank">拖动的内容</a></li>
            <li><a href="#" target="_blank">拖动的内容</a></li>
            <li><a href="#" target="_blank">拖动的内容</a></li>
            <li><a href="#" target="_blank">拖动的内容</a></li>
            <li><a href="#" target="_blank">拖动的内容</a></li>
            <li><a href="#" target="_blank">拖动的内容</a></li>
            <li><a href="#" target="_blank">拖动的内容</a></li>
            <li><a href="#" target="_blank">拖动的内容</a></li>
            <li><a href="#" target="_blank">拖动的内容</a></li>
            <li><a href="#" target="_blank">拖动的内容</a></li>
            <li><a href="#" target="_blank">拖动的内容</a></li>
            <li><a href="#" target="_blank">拖动的内容</a></li>
            <li><a href="#" target="_blank">拖动的内容</a></li>
            <li><a href="#" target="_blank">拖动的内容</a></li>
            <li><a href="#" target="_blank">拖动的内容</a></li>
            <li><a href="#" target="_blank">拖动的内容</a></li>
            <li><a href="#" target="_blank">拖动的内容</a></li>
            <li><a href="#" target="_blank">拖动的内容</a></li>
            <li><a href="#" target="_blank">拖动的内容</a></li>
            <li><a href="#" target="_blank">拖动的内容</a></li>
        </ul>
        <div class="btnDiv" id="btnDiv"></div>
        <div class="btn" id="btn">拖动</div>
        <span class="pre" id="pre">《《</span>
        <span class="next" id="next">》》</span>
    </div>
    <script type="text/javascript">
    window.onload = function(){
        var oWrapper = getId("wrapper");
        var btnDiv = getId("btnDiv");
        var pre = getId("pre");
        var next = getId("next");
        var oUl = getDom("ul",oWrapper)[0];
        var oLi = oUl.getElementsByTagName("li");
        var oLiLength = oLi.length;
         var oBtn = getId("btn");
        var disX = 0,step=0,moveLeft=0,timer = null;
        // oUl width
        oUl.style.width = oLiLength * oLi[0].offsetWidth + "px";
         // 检测 溢出的li 是否大于滚动条的总宽度;
        var scrWidth = oWrapper.clientWidth - (oUl.offsetWidth - oWrapper.clientWidth);
        if(scrWidth > 0){
            oBtn.style.width = scrWidth + "px";
        }else{
            step = Math.abs( (oUl.offsetWidth - oWrapper.clientWidth)/(oWrapper.clientWidth-40) );
            oBtn.style.width = "40px";
        }
        // 开始拖动
        oBtn.onmousedown = function(event){
            var oEvent = event || window.event;
            var oPageX = oEvent.layerX?oEvent.layerX:oEvent.offsetX;
            disX = oWrapper.offsetLeft + oPageX;
            document.onmousemove = function(event){
                var oEvent = event || window.event;
                moveLeft = oEvent.clientX - disX;
                dragMove(moveLeft);
            }
            if(oEvent.stopPropagation){
                oEvent.stopPropagation();
            }else{
                oEvent.cancelBubble = true;
            }
        }
        pre.onmousedown = function(event){
            timer = setInterval(function(){
                   moveLeft-=10;
                dragMove(moveLeft);
            },80)
        }
        pre.onmouseup = function(){
            clearInterval(timer);
            moveLeft-=10;
            dragMove(moveLeft);
        }
        next.onmousedown = function(event){
            timer = setInterval(function(){
                moveLeft+=10;
                dragMove(moveLeft);
            },80);
        }
        next.onmouseup = function(){
            clearInterval(timer);
            moveLeft+=10;
            dragMove(moveLeft);
        }
        document.onmouseup = function(){
            document.onmousemove = null;
        }
        btnDiv.onclick = function(event){
            var oEvent = event || window.event;
            var otarget = oEvent.target?oEvent.target:oEvent.srcElement;
            if(otarget.id == "btnDiv"){
                var oPageX = oEvent.layerX?oEvent.layerX:oEvent.offsetX;
            }
            moveLeft = oPageX;
            dragMove(oPageX)
            if(oEvent.stopPropagation){
                oEvent.stopPropagation();
            }else{
                oEvent.cancelBubble = true;
            }
        }
        function dragMove(moveLeft){
            if(moveLeft<0){
                oBtn.style.left = "0px";
                oUl.style.left = "0px";
            }else if(moveLeft>(oWrapper.clientWidth-oBtn.offsetWidth)){
                moveLeft = oWrapper.clientWidth-oBtn.offsetWidth;
            }else{
                oBtn.style.left = parseInt(moveLeft) + step + "px";
                if(step==0){
                    oBtn.style.left = parseInt(moveLeft) + "px";
                    oUl.style.left = - parseInt(moveLeft) + "px";    
                }else{
                    oBtn.style.left = parseInt(moveLeft) + step + "px";
                    oUl.style.left = -(parseInt(moveLeft) * step) + "px";
                }
            }
        }
    }
    function getStyle(obj,attr){
        return obj.currentStyle?parseInt(obj.currentStyle[attr]):parseInt(getComputedStyle(obj,false)[attr]);
    }
    function getDom(dom,obj){
        var obj = obj || document;
        return obj.getElementsByTagName(dom);
    }
    function getId(id){
        return document.getElementById(id);
    }    
    </script>
    </body>
    </html>

  • 相关阅读:
    makefile
    xcode
    centos
    debug
    服务器开发
    socket
    xcode
    调用cpp库更基本
    nodejs cpp动态库
    html5图片裁剪法--
  • 原文地址:https://www.cnblogs.com/xiuciedward/p/3204068.html
Copyright © 2011-2022 走看看