• [读码时间] 自动改变方向幻灯片效果


    说明:代码取自网络,注释为笔者学习时添加。

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <title>自动改变方向幻灯片效果</title>
        <style>
            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;/*相对*/
                width:492px;
                height:172px;
                background:#fff;/*白色*/
                border-radius:5px;/*圆角*/
                border:8px solid #fff;/*白色粗边框*/
                margin:10px auto;/*左右置中*/
            }
            #box .list{
                position:relative;
                width:490px;
                height:170px;
                overflow:hidden;
                border:1px solid #ccc;/*灰色*/
            }
            #box .list li{
                position:absolute;/*绝对*/
                top:0;
                left:0;
                height:170px;
                opacity:0;/*透明度*/
                filter:alpha(opacity=0);
            }
            #box .list li.current{
                opacity:1;
                filter:alpha(opacity=100);
            }
    
            #box .count{
                position:absolute;/*绝对*/
                right:0;/*靠右对齐*/
                bottom:5px;
            }
            #box .count li{
                color:#fff;/*白色*/
                float:left;/*左浮动*/
                width: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{
                width:100px;
                height:100px;
                background:red;
                position:absolute;/*绝对*/
            }
        </style>
        <script>
            window.onload = function () {
                var oBox = document.getElementById("box");//获取div引用
                var aUl = document.getElementsByTagName("ul");//获取ul列表引用
                var aImg = aUl[0].getElementsByTagName("li");//获取列表1中所有li引用
                var aNum = aUl[1].getElementsByTagName("li");//获取列表2中所有 li引用,这些是用于在右下角显示当前图片序号
                var timer = play = null;//声明计时器id
                var i = index = 0;//声明索引并初始化
                var bOrder = true;//flag,风向标,旗语,布尔值,判断顺序,默认为真,由小到大递增
    
                for (i = 0; i < aNum.length; i++) {
                    aNum[i].index = i;//给序号添加index索引值
                    aNum[i].onmouseover = function () {//注册mouseover事件,切换按钮
                        show(this.index);//给show函数传递值
                    }
                }
    
                oBox.onmouseover = function () {//鼠标移入关闭定时器
                    clearInterval(play);//play为定时器id,传给clearInterval则可以清除定时器
                };
    
                oBox.onmouseout = function () {//鼠标移出自动播放
                    autoPlay();
                };
    
                function autoPlay() {
                    play = setInterval(function () {
                        bOrder ? index++ : index--;//bOrder即所谓的flag(能翻译成风向标么?),旗语,默认为真,判断播放顺序,为真则递增,为假则递减
                        index >= aImg.length && (index = aImg.length - 2, bOrder = false);//index增加到超过图片总数量,赋值index为倒数第2张图片,flag标记bOrder值为假
    
                        index <= 0 && (index = 0, bOrder = true);//index小于等于0,赋值index为第1张图片,flag标记bOrder设为真
    
                        show(index);//调用show,显示当前图片
                    }, 2000);//2秒执行一次
                }
                autoPlay();//首次调用
    
                function show(a) {
                    index = a;
                    var alpha = 0;
                    for (i = 0; i < aNum.length; i++) aNum[i].className = "";//清除所有序号的类
                    aNum[index].className = "current";//添加类
                    clearInterval(timer);//清除间歇调用
    
                    for (i = 0; i < aImg.length; i++) {//设置所有图片的透明度为不可见
                        aImg[i].style.opacity = 0;
                        aImg[i].style.filter = "alpha(opacity=0)";
                    }
                    timer = setInterval(function () {
                        alpha += 2;
                        alpha > 100 && (alpha = 100);
                        aImg[index].style.opacity = alpha / 100;
                        aImg[index].style.filter = "alpha(opacity= " + alpha + ")";
                        alpha == 100 && clearInterval(timer);
                    }, 20);
    
                }
    
    
    
            };
        </script>
    </head>
    <body>
        <div id="box">
            <ul class="list">
                <li class="current"><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>
            <ul class="count">
                <li class="current">1</li>
                <li>2</li>
                <li>3</li>
                <li>4</li>
                <li>5</li>
            </ul>
        </div>
    </body>
    </html>
    View Code
  • 相关阅读:
    请输入关键字
    如何把心动变成行动
    理解ASP.NET MVC系列之一:ASP.NET MVC基于MVC设计模式
    window.showModalDialog()
    visual studio 2010 winform程序不能添加对system.web的引用[转载]
    理解ASP.NET MVC系列之三:从URL到Route
    Dan计划:重新定义人生的10000个小时
    为Visual Studio添加配色方案
    [转载]用缓存服务器负载均衡 提数据库查询效率
    Json的序列化和反序列化
  • 原文地址:https://www.cnblogs.com/sx00xs/p/6487687.html
Copyright © 2020-2023  润新知