zoukankan      html  css  js  c++  java
  • javascript实例学习之六—百叶窗效果

    一、要结合布局才能形成百叶窗的效果

    二、开启两个定时器,第一个定时器控制的是百叶窗整体一次上翻,一次下翻;另一个控制百叶窗中的各页逐次翻转,形成层次效果。否则就成了普通的滚动广告的效果了

    本实现借助于自己实现的base.js和tool.js 。重点是利用了其中的animate函数

    1.页面布局代码 

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <title>测试页面</title>
        <style>
            *{margin:0; padding:0; }
            ul{300px;}
            ul>li{list-style: none;height:30px;   overflow: hidden;border-bottom: 1px dashed #000;}
            li>div{margin:0; padding:0;position:relative;top:0;}
            ul p{height:30px;line-height: 30px;}
    
        </style>
    </head>
        
    <body>
        <ul >
            <li>
                <div>
                    <p>11111111111111111</p>
                    <p>22222222222222222</p>
                </div>
            </li>
            <li>
                <div>
                    <p>333333333333333333</p>
                    <p>444444444444444444</p>
                </div>
            </li>
            <li>
                <div>
                    <p>5555555555555555555</p>
                    <p>6666666666666666666</p>
                </div>
            </li>
            <li>
                <div>
                    <p>7777777777777777777</p>
                    <p>8888888888888888888</p>
                </div>
            </li>
            <li>
                <div>
                    <p>99999999999999999999</p>
                    <p>00000000000000000000</p>
                </div>
            </li>
        </ul>
        <script src="./commonJs/tool.js"></script>
        <script src="./commonJs/base.js"></script>
        <script src="./usualEffects/js/baiyechuang.js"></script>
         
    </body>
    
    </html>
    百叶窗html布局

    2.相关js代码

    /*
     * 尝试实现百叶窗效果
     */
    //需要两个定时器
    $(function() {
        var oUl = document.getElementsByTagName('ul')[0];
        showBaiye(oUl);
    
        function showBaiye(oUl) {
            var divs = oUl.getElementsByTagName('div');
            var flag = true;
            var iNow = 0;
            var timer;
            //每4s百叶窗整体翻动一次,一次上翻,一次下凡
            setInterval(function() {
                
                //如果不开定时器的话,就没有层次的效果了,就是普通轮播图的效果
                // for (var i = 0; i < divs.length; i++) {
                //     $(divs[i]).animate({ 'top': '-30px' }, null, 100);
                // };
                //每隔300ms每一个百叶逐个翻动,形成层次效果
                timer = setInterval(changeItem, 300);
                flag=!flag;
            }, 4000);
    
            function changeItem() {
                var endValue = flag ? '-30px' : '0';
                $(divs[iNow]).animate({ 'top': endValue }, null, 100);
                iNow++;
                if (iNow == divs.length) {
                    iNow = 0;
                    clearInterval(timer);
                    
                }
            }
        }
       
    
         
    
    });

     

  • 相关阅读:
    android 开机启动
    android 获取lanucher 列表
    原创高端影楼人像专业磨皮法教程详解 附PSD源码
    [转]在SQLPLUS启动和停止Oracle数据库
    挑印刷时间最新的地图!
    Eclipse3.2下进行ArcGIS Server 9.2 Java WebADF开发手记 Eclipse使用技巧
    [藏]常用的匹配正则表达式和实例
    [藏]C# 中的常用正则表达式总结
    [转]使用uDig制作geoserver中需要的style
    [转]geoserver与OpenLayers配置入门
  • 原文地址:https://www.cnblogs.com/bobodeboke/p/5482565.html
Copyright © 2011-2022 走看看