• 幻灯片缓冲效果


    思路

    1、需要2个函数,第一个为自动播放函数,第二个为变换方式函数

    2、鼠标移入div自动播放,鼠标移出div停止自动播放

    3、缓冲效果的话需要计算外层UL的top值(offsetTop)判断是否等于index*aImg[0].offsetHeight的高度,如果等于的话,就是切换完成,如果不等于的话让变换的iSpeed=(index*aImg[0].offsetHeight-oUl.offsetTop)/10

    4、Math.ceil与Math.floor经常用到Math.ceil是向上取整数,一般用在大于零的时候例如Math.ceil(12,1)结果为13,Math.floor向下取整数,一般用在小于零的时候例如Math.floor(-12.1)为-13;

    <!doctyle html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>自动播放--轮播图</title>
    <style type="text/css">
    body,div,ul,li{margin:0;padding:0;}
    ul{list-style-type:none;}
    body{background:#000;text-align:center;font:12px/20px Arial;}
    #box{position:relative;492px;height:172px;background:#fff;border-radius:5px;border:8px solid #fff;margin:10px auto;cursor:pointer;}
    #box .list{position:relative;490px;height:170px;overflow:hidden;}
    #box .list ul{position:absolute;top:0;left:0;}
    #box .list li{490px;height:170px;overflow:hidden;}
    #box .count{position:absolute;right:0;bottom:5px;}
    #box .count li{color:#fff;float:left;20px;height:20px;cursor:pointer;margin-right:5px;overflow:hidden;background:#F90;opacity:0.7;filter:alpha(opacity=70);border-radius:20px;}
    #box .count li.current{color:#fff;opacity:1;filter:alpha(opacity=100);font-weight:700;background:#f60;}
    #tmp{100px;height:100px;background:red;position:absolute;}
    
    </style>
    <script type="text/javascript">
    window.onload=function()
    {
        var oBox=document.getElementById("box");
        var oList=oBox.getElementsByTagName("ul")[0];
        var aImg=oBox.getElementsByTagName("img");
        var oUl=document.createElement("ul");
        var attr=[];
        var index=0;
        var timer=playTimer=null;
        var bOrder=true;
        oUl.className="count";
        for (var i = 0; i < aImg.length; i++) 
        {
            attr.push("<li>"+(i+1)+"</li>");
        };
        oUl.innerHTML=attr.join("");
        oBox.appendChild(oUl);
        aBtn=document.getElementsByTagName("ul")[1].getElementsByTagName("li");
        for (var i = 0; i < aBtn.length; i++)
        {
            aBtn[i].index=i;
            aBtn[i].onmouseover=function()
            {
                index=this.index;
                cutover();
                //console.log(index*aImg[0].offsetHeight);
            }
        }
        cutover();
        //鼠标移入停止自动播放
        oBox.onmouseover=function()
        {
            clearInterval(playTimer);
        };
        //鼠标移出自动播放
        oBox.onmouseout=function()
        {
            autoPlay();
        }
        function cutover()
        {
            for(var i=0;i<aBtn.length;i++) aBtn[i].className="";
            aBtn[index].className="current";
            show(-(index*aImg[0].offsetHeight));
        }
        function autoPlay()
        {
            playTimer=setInterval(function()
            {
                bOrder?index++:index--;
                index>=aBtn.length-1&&(index=aBtn.length-1,bOrder=false);
                index<=0&&(index=0,bOrder=true);
                cutover()
            },2000)
        }
        autoPlay();
        function show(itarget)
        {
            clearInterval(timer);
            timer=setInterval(function()
            {
                var iSpeed=(itarget-oList.offsetTop)/10;
                iSpeed=iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);
                oList.offsetTop==itarget?clearInterval(timer):oList.style.top=oList.offsetTop+iSpeed+"px";
            },30)
        }
    }
    </script>
    </head>
    <body>
    <div id="box">
        <div class="list">
            <ul>
                <li><img src="img/01.jpg" width="490" height="170"></li>
                <li><img src="img/02.jpg" width="490" height="170"></li>
                <li><img src="img/03.jpg" width="490" height="170"></li>
                <li><img src="img/04.jpg" width="490" height="170"></li>
                <li><img src="img/05.jpg" width="490" height="170"></li>
            </ul>
        </div>
    </div>
    </body>
    </html>
  • 相关阅读:
    猜拳游戏
    python2.7安装paramiko模板(windows)
    python socket编程(初级)
    Python2.7怎么安装MySQLdb模板(Windows32)
    Python的用户交互模式
    一个java程序员自学IOS开发之路(三)
    一个java程序员自学IOS开发之路(二)
    一个java程序员自学IOS开发之路(一)
    win 7 取得最高权限
    Multiset ------ 多重集合
  • 原文地址:https://www.cnblogs.com/yuyu9988/p/3417919.html
Copyright © 2020-2023  润新知