zoukankan      html  css  js  c++  java
  • JS特效之很牛叉的轮播图

    //HTML部分:

    <!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>很牛叉的轮播图</title>

    <!--[if lte IE 6]>

    <script src="js/DD_belatedPNG_0.0.8a.js" type="text/javascript"></script>

        <script type="text/javascript">

            DD_belatedPNG.fix('span');

        </script>

    <![endif]-->

    <link href="style.css" rel="stylesheet" type="text/css" />

    <script type="text/javascript" src="move.js"></script>

    <script>

     

    window.onload = function(){

     

    var oPrevDiv = document.getElementsByClassName('prev_div')[0];

    var oNextDiv = document.getElementsByClassName('next_div')[0];

     

    var aLi = document.getElementsByTagName('li');

     

    var arr = [];

     

    for(var i=0;i<aLi.length;i++){

     

    var oImg = aLi[i].getElementsByTagName('img')[0];

     

    arr.push( [ parseInt(getStyle(aLi[i],'left')),parseInt(getStyle(aLi[i],'top')),getStyle(aLi[i],'opacity')*100,getStyle(aLi[i],'zIndex') , oImg.width ] );

     

    }

     

    //console.dir(arr);

     

    oPrevDiv.onclick = function(){  //左

     

    arr.push(arr[0]);

    arr.shift();

     

    for(var i=0;i<aLi.length;i++){

     

    var oImg = aLi[i].getElementsByTagName('img')[0];

     

    aLi[i].style.zIndex = arr[i][3];

     

    startMove(aLi[i],{left : arr[i][0] , top : arr[i][1] , opacity : arr[i][2] });

     

    startMove( oImg,{ width : arr[i][4] } );

     

    }

     

    };

     

    oNextDiv.onclick = function(){  //右

    arr.unshift(arr[arr.length-1]);

    arr.pop();

     

    for(var i=0;i<aLi.length;i++){

     

    var oImg = aLi[i].getElementsByTagName('img')[0];

     

    aLi[i].style.zIndex = arr[i][3];

     

    startMove(aLi[i],{left : arr[i][0] , top : arr[i][1] , opacity : arr[i][2] });

     

    startMove( oImg,{ width : arr[i][4] } );

     

    }

    };

     

     

    function getStyle(obj,attr){

    if(obj.currentStyle){

    return obj.currentStyle[attr];

    }

    else{

    return getComputedStyle(obj,false)[attr];

    }

    }

     

    };

     

    </script>

    </head>

     

    <body>

     

    <div id="automatic">

     

    <div class="prev_div"></div>

        <a class="prev" href="###">

            <span class="ico1"></span>

            <span class="ico"></span>

            <span class="txt"></span>

        </a>

     

    <div class="next_div"></div>

        <a class="next" href="###">

            <span class="ico1"></span>

            <span class="ico"></span>

            <span class="txt"></span>

        </a>

     

        <ul>

            <li class="pos_0"><a href="#"><img src="images/8.jpg" width="100" alt=""/></a></li>

            <li class="pos_1"><a href="#"><img src="images/1.jpg" width="270" alt=""/></a></li>

            <li class="pos_2"><a href="#"><img src="images/2.jpg" width="510" alt=""/></a></li>

            <li class="pos_3"><a href="#"><img src="images/3.jpg" width="680" alt=""/></a></li>

            <li class="pos_4"><a href="#"><img src="images/4.jpg" width="510" alt=""/></a></li>

            <li class="pos_5"><a href="#"><img src="images/5.jpg" width="270" alt=""/></a></li>

            <li class="pos_6"><a href="#"><img src="images/6.jpg" width="270" alt=""/></a></li>

            <li class="pos_6"><a href="#"><img src="images/7.jpg" width="270" alt=""/></a></li>

        </ul>

     

    </div>

    </body>

    </html>

    //CSS部分:

    @charset "utf-8";

    /* CSS Document */

     

    * { padding: 0; margin: 0; }

    li { list-style: none; }

    img { border: none; }

    body { background: #ececec; padding-top: 50px; }

     

    #automatic { width: 970px; height: 344px; position: relative; margin: 0 auto; overflow: hidden; }

     

    .prev_div { width: 130px; height: 72px; position: absolute; top: 128px; left: 92px; z-index: 5; background: red; filter: alpha(opacity=0); opacity: 0; cursor: pointer; }

    .next_div { width: 130px; height: 72px; position: absolute; top: 128px; right: 92px; z-index: 5; background: red; filter: alpha(opacity=0); opacity: 0; cursor: pointer; }

     

    #automatic .prev { width: 120px; height: 72px; position: absolute; top: 108px; left: 72px; z-index: 4; }

    #automatic .prev .ico { width: 76px; height: 112px; position: absolute; top: 0; left: 0; background: url(images/prev.png); }

    #automatic .prev .ico1 { width: 76px; height: 112px; position: absolute; top: 0; left: 0; background: url(images/prev_1.png); z-index: 2; filter: alpha(opacity=0); opacity: 0; }

    #automatic .prev .txt { width: 106px; height: 112px; position: absolute; top: 0; left: 65px; background: url(images/prev_txt.png) no-repeat; filter: alpha(opacity=0); opacity: 0; }

     

    #automatic .next { width: 120px; height: 72px; position: absolute; top: 108px; right: 72px; z-index: 4; }

    #automatic .next .ico { width: 76px; height: 112px; position: absolute; top: 0; right: 0; background: url(images/next.png) no-repeat; }

    #automatic .next .ico1 { width: 76px; height: 112px; position: absolute; top: 0; right: 0px; background: url(images/next_1.png) no-repeat; z-index: 2; filter: alpha(opacity=0); opacity: 0; }

    #automatic .next .txt { width: 106px; height: 112px; position: absolute; top: 0; right: 65px; background: url(images/next_txt.png) no-repeat; filter: alpha(opacity=0); opacity: 0; }

     

    #automatic ul { width: 970px; height: 344px; position: absolute; top: 0; left: 0; z-index: 1; }

    #automatic li { position: absolute; }

     

    #automatic .line { border: 4px solid #fff; width: 672px; height: 336px; position: absolute; top: 0; left: 50%; margin-left: -340px; z-index: 3; }

     

    #automatic .pos_0 { top: -104px; left: 0; z-index: 1; filter: alpha(opacity=0); opacity: 0; }

    #automatic .pos_1 { top: 104px; left: 0; z-index: 2; filter: alpha(opacity=60); opacity: 0.6; }

    #automatic .pos_2 { top: 43px; left: 50px; z-index: 3; filter: alpha(opacity=80); opacity: 0.8; }

    #automatic .pos_3 { top: 0; left: 145px; z-index: 4; }

    #automatic .pos_4 { top: 43px; right: 50px; z-index: 3; filter: alpha(opacity=80); opacity: 0.8; }

    #automatic .pos_5 { top: 104px; right: 0; z-index: 2; filter: alpha(opacity=60); opacity: 0.6; }

    #automatic .pos_6 { top: -104px; right: 0; z-index: 1; filter: alpha(opacity=0); opacity: 0; }

     

    //js部分:

    function startMove(obj,json,endFn){

     

    clearInterval(obj.timer);

     

    obj.timer = setInterval(function(){

     

    var bBtn = true;

     

    for(var attr in json){

     

    var iCur = 0;

     

    if(attr == 'opacity'){

    if(Math.round(parseFloat(getStyle(obj,attr))*100)==0){

    iCur = Math.round(parseFloat(getStyle(obj,attr))*100);

     

    }

    else{

    iCur = Math.round(parseFloat(getStyle(obj,attr))*100) || 100;

    }

    }

    else{

    iCur = parseInt(getStyle(obj,attr)) || 0;

    }

     

    var iSpeed = (json[attr] - iCur)/8;

    iSpeed = iSpeed >0 ? Math.ceil(iSpeed) : Math.floor(iSpeed);

    if(iCur!=json[attr]){

    bBtn = false;

    }

     

    if(attr == 'opacity'){

    obj.style.filter = 'alpha(opacity=' +(iCur + iSpeed)+ ')';

    obj.style.opacity = (iCur + iSpeed)/100;

     

    }

    else{

    obj.style[attr] = iCur + iSpeed + 'px';

    }

     

     

    }

     

    if(bBtn){

    clearInterval(obj.timer);

     

    if(endFn){

    endFn.call(obj);

    }

    }

     

    },30);

     

    }

     

     

    function getStyle(obj,attr){

    if(obj.currentStyle){

    return obj.currentStyle[attr];

    }

    else{

    return getComputedStyle(obj,false)[attr];

    }

    }

  • 相关阅读:
    转-关于图片或者文件在数据库的存储方式归纳
    转-数据流图的画法
    Effective Java2-学习笔记 第11-20条
    Effective Java2-学习笔记 第1-10条
    Python面向对象-学习笔记
    python基础语法-学习笔记
    C# 获取时间戳
    C# 时间格式转换
    C# 获取IP地址
    Http post请求
  • 原文地址:https://www.cnblogs.com/Aaron1Tall/p/7298453.html
Copyright © 2011-2022 走看看