zoukankan      html  css  js  c++  java
  • js实战之-图片旋转播放

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>js-图片旋转</title>
    <style type="text/css">
    *{ margin:0; padding:0}
    #box{ position: relative; width:552px; height:200px;  border:1px solid #999; margin:100px; background:#666666}
    #box img{ width:150px; height:200px}
    #bg {width:100%; height:100%; position:absolute; left:0; top:0; filter:alpha(opacity:60); opacity:0.6; background:black; z-index:1000;}
    #prog {width:324px; height:40px; background:url(images/bar.png) no-repeat 0 20px; position:absolute; z-index:2000; top:50%; left:50%; margin:-20px 0 0 -162px; font-family:arial; font-size:12px; color:#fff; text-align:center;}
    #prog span {font-family:"宋体";}
    .btn1,.btn2{ z-index:800; position:absolute;width:50px; height:30px; line-height:30px}
    .btn1{ top:80px; right:60px; }
    .btn2{ top:80px; left:60px}
    #bar {width:0%; height:16px; background:url(images/bar_line.gif) repeat-x; overflow:hidden; position:absolute; bottom:2px; left:2px;}
    .div1{ position:absolute;  top:0px; left:0px; width:150px; height:200px; background:#0033CC; opacity:0.1; z-index:10}
    .div2{ position:absolute;  top:0px; left:100px; width:150px;height:200px; background: #000;opacity:0.3; z-index:50}
    .div3{ position:absolute;  top:0px; left:200px; width:150px; height:200px;background: #F90;opacity:1; z-index:100}
    .div4{ position:absolute;  top:0px; left:300px; width:150px;height:200px; background: #60C;opacity:0.3; z-index:50}
    .div5{ position:absolute;  top:0px; left:400px; width:150px; height:200px;background: #F90;opacity:0.1; z-index:10}
    
    </style>
    
    </head>
    <body>
    
    <div id="box">
    <div id="bg"></div>
    <div id="prog">
        图片载入中......<span>0%</span>
        <div id="bar"></div>
    </div>
    <div id="btnBox"><button class="btn1">前一张</button><button class="btn2">后一张</button></div>
    
    <div  id="zbox">
        <div class="div1"><img src="" width="150" height="200" /></div>
        <div class="div2"><img src="" width="150" height="200" /></div>
        <div class="div3"><img src="" width="150" height="200" /></div>
         <div class="div4"><img src="" width="150" height="200" /></div>
        <div class="div5"><img src="" width="150" height="200" /></div>
    </div>
    
    </div>
    
    <script type="text/javascript">
    var aBox=document.getElementById("box");
    var zBox=document.getElementById("zbox");
    var oImg=zBox.getElementsByTagName("img");
    var oBtn0=aBox.getElementsByTagName("button")[0];
    var oBtn1=aBox.getElementsByTagName("button")[1];
    var div=zBox.getElementsByTagName("div");
    var oTxt=document.getElementById('prog').getElementsByTagName('span')[0];
    var oBar=document.getElementById('bar');
    var arr=[];
    var  imgsrc=[
               "http://pic.desk.chinaz.com/file/201211/5/shierybizi7.jpg",
                "http://img7.9158.com/200709/01/11/53/200709018758949.jpg",
                "http://img7.9158.com/200708/10/09/18/200708103758836.jpg",
                "http://img.pconline.com.cn/images/photoblog/1/0/1/7/10173588/200911/7/1257560022502_mthumb.jpg",
                "http://ishare.iask.sina.com.cn/play.php?fileid=8156385&path=20100610_7881956_0.jpg"
                ];
    var bBtn=true;
    var icenter=2;
    var timer=null;
    var iLoad=0;
    
    //图片预加载
    for(var i=0;i<oImg.length;i++){
        (function(i){
            
                var Img=new Image();    
                Img.src=imgsrc[i];    
                Img.onload=function(){
                    oTxt.innerHTML=oBar.style.width=Math.ceil(100*iLoad/oImg.length)+'%';
                    Img.onload=null;
                    oImg[i].src=this.src;
                    iLoad+=1;    
                    if(iLoad==oImg.length){
                        document.getElementById('prog').style.display=document.getElementById('bg').style.display='none';
                        aBox.style.display="block";
                        imgAuto();
                    }
                }
                
    
        })(i)    
            
    }
        
    
    function  imgAuto(){
        
                for(var i=0;i<div.length;i++){
                    arr.push([getStyle(div[i],"left"),getStyle(div[i],"top"),getStyle(div[i],"opacity"),i,getStyle(div[i],"zIndex")]);
                    div[i].style.left=200+"px";
                    div[i].style.top=0+"px";
                
                }
                setTimeout(function(){
                        for(var i=0;i<div.length;i++){
                                startMove(div[i],{left:parseInt(arr[i][0]),top:parseInt(arr[i][1]),opacity:arr[i][2]*100,zIndex:parseInt(arr[i][4])});      
                        }
                },500);
    
                oBtn0.onclick=function(){
                       if(bBtn){
                                    bBtn=false;
                                    arr.push(arr.shift());
                                    dh();            
                       }        
                }
                oBtn1.onclick=function(){
                         if(bBtn){
                                    bBtn=false;    
                                    arr.unshift(arr.pop());
                                    dh();        
                         }
                                    
                }
                
                aBox.onmouseover=function(){
                    clearInterval(timer);
                }
                aBox.onmouseout=function(){
                    timer=setInterval(function(){
                    
                        arr.push(arr.shift());
                        dh();            
                    
                    },3000);
                    
                }
    
                timer=setInterval(function(){
                    
                        arr.push(arr.shift());
                        dh();            
                    
                },3000);
                
                
                for(var i=0;i<div.length;i++){
                      
                    div[i].index=i; 
                     
                    div[i].onclick=function(){
                
                            var num=arr[this.index][3];
                            if(num<icenter){        
                                    for(var i=0;i<icenter-num;i++){
                                        arr.push(arr.shift());
                                        dh();
                                    }        
                            }
                            if(num>icenter){        
                                    for(var i=0;i<num-icenter;i++){
                                        arr.unshift(arr.pop());
                                        dh();    
                                    }        
                            }    
                        
                    }
                    
                }
                
                function  dh(){
                    
                        for(var i=0;i<div.length;i++){
                        
                            startMove(div[i],{left:parseInt(arr[i][0]),top:parseInt(arr[i][1]),opacity:arr[i][2]*100,zIndex:parseInt(arr[i][4])},function(){
                                      
                                bBtn=true;  
                            });      
                        }
                }
    
    }
    
        function startMove(obj, json, fnEnd)
            {
                
                
                clearInterval(obj.timer);
                obj.timer=setInterval(function (){
                    var bStop=true;        //假设:所有值都已经到了
                    
                    for(var attr in json)
                    {
                        var cur=0;
                        
                        if(attr=='opacity')
                        {
                            cur=Math.round(parseFloat(getStyle(obj, attr))*100);
                        }
                        else
                        {
                            cur=parseInt(getStyle(obj, attr));
                        }
                        
                        var speed=(json[attr]-cur)/6;
                        speed=speed>0?Math.ceil(speed):Math.floor(speed);
                        
                        if(cur!=json[attr])
                            bStop=false;
                        
                        if(attr=='opacity')
                        {
                            obj.style.filter='alpha(opacity:'+(cur+speed)+')';
                            obj.style.opacity=(cur+speed)/100;
                        }
                        else if(attr=="zIndex"){
                            
                            obj.style[attr]=cur+speed;
                        }else
                        {
                            obj.style[attr]=cur+speed+'px';
                        }
                        
                    }
                    
                    if(bStop)
                    {
                        clearInterval(obj.timer);
                                    
                        if(fnEnd)fnEnd();
                    }
                }, 30);
            }
    
        function getStyle(obj, name)
            {
                if(obj.currentStyle)
                {
                    return obj.currentStyle[name];
                }
                else
                {
                    return getComputedStyle(obj, false)[name];
                }
            }
    
    </script>
    </body>
    </html>
    一个不敬业的前端攻城狮
  • 相关阅读:
    Git使用教程
    安卓Activity全屏显示以及不显示title
    Android自定义权限
    java基础类型数据与String类包装类之间的转换与理解
    sQL存储过程的优缺点
    安卓5.0新特性
    Android中图片压缩(质量压缩和尺寸压缩)
    java基本数据类型所占字节数
    Android性能优化之一:ViewStub
    安卓内存优化和视图优化
  • 原文地址:https://www.cnblogs.com/chaoming/p/3180577.html
Copyright © 2011-2022 走看看