zoukankan      html  css  js  c++  java
  • 幻灯片缓冲效果

    思路

    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>
  • 相关阅读:
    滚动监听+导航固顶
    选项卡 || 图片切换
    绝对定位下如何居中?
    选项卡+轮播的实现
    设置mysql 及其他应用程序 自动启动
    边框阴影 模糊值 x轴偏移值 y轴偏移值 模糊半径 阴影半径 || 颜色 insect,其中阴影半径可以为负值,意思是增加或减少指定数值的阴影半径
    form表单中的 下拉菜单 所有的省份
    媒体查询 屏幕超过页面上版心的宽度时 ,(也就是所有内容能显示出来),不让它有滚动条 【解决了因为banner图的原因出现滚动条的问题】
    jenkins 安全权限及注册新的测试角色使用
    git基础概念(和svn的优劣)
  • 原文地址:https://www.cnblogs.com/yuyu9988/p/3417919.html
Copyright © 2011-2022 走看看