百叶窗效果

news/2024/7/19 13:23:19 标签: js, 百叶窗

需要两个定时器:第一个定时器用来控制每四秒开启第二个定时器

第二个定时器作用:通过控制div的运动,实现百叶窗的效果,也即每100毫秒让一个div向上或向下运动一定的距离,当最后一个div运动完之后,关闭第二个定时器

具体实现看下面的代码

HTML代码

<ul id="ul1">
    <li>
        <div>
            <p>aaaaaaaaa</p>
            <p>bbbbbbbbb</p>
        </div>
    </li>
    <li>
        <div>
            <p>cccccccc</p>
            <p>dddddddd</p>
        </div>
    </li>
    <li>
        <div>
            <p>eeeeeeee</p>
            <p>ffffffff</p>
        </div>
    </li>
    <li>
        <div>
            <p>gggggggg</p>
            <p>hhhhhhhh</p>
        </div>
    </li>
    <li>
        <div>
            <p>iiiiiiii</p>
            <p>jjjjjjjj</p>
        </div>
</li>
    <li>
        <div>
            <p>kkkkkkkk</p>
            <p>llllllll</p>
        </div>
    </li>
</ul>

css代码

<style>
        *{margin:0; padding:0;}
        li{list-style:none;}
        #ul1{width:300px; height:auto;border-top:1px solid #000; margin:20px;}
        li{width:100%; line-height:30px; border-bottom:1px #333 dashed; overflow:hidden; position:relative; height:30px;}
        div{position:absolute; top:-30px;}
        div p{height:30px;}
    </style>

js代码

首先我们需要用到一个运动的框架,框架我之前已经写过,如果有兴趣的请点击运动框架

<script type="text/javascript" src="move.js"></script>
<script>
 window.onload = function(){
            var oUl = document.getElementById('ul1');
            toShow(oUl);
            function toShow(obj){
                var aDiv = obj.getElementsByTagName('div');
                var iNow =0;
                var iTimer = null;
                var iBtn = true;//设置开关,通过开关决定是div是向下移动还是向上移动
                setInterval(function(){
                    toChange();

                },4000);//开启第一个定时器,让这个百叶窗效果每四秒运动一次
                function toChange(){


                    iTimer = setInterval(function(){//设置第二个定时器,即从第一个到最后一个div每100毫秒运动一个,最后一个运动完成之后关闭这个定时器
                        if(iNow==aDiv.length){
                            clearInterval(iTimer);
                            iNow = 0;
                            iBtn = !iBtn;
                        }else{
                            startMove(aDiv[iNow],{top:iBtn?0:-30});//使用运动框架,让div运动起来
                            iNow++;
                        }

                    },100);

                }

            }
}
</script>
以上就是百叶窗的完整代码。



http://www.niftyadmin.cn/n/952240.html

相关文章

css3新特性_CSS3新特性1

一、圆角1、定义使用 CSS3 border-radius 属性&#xff0c;你可以给任何元素制作 "圆角"。2、语法CSS3 border-radius - 指定每个圆角如果你在 border-radius 属性中只指定一个值&#xff0c;那么将生成 4 个 圆角。但是&#xff0c;如果你要在四个角上一一指定&…

js有层级图片切换的实现方法

实现原理&#xff1a;将要变化的数据以数组的方式存放在一个空数组中&#xff0c;当事件响应时&#xff0c;通过数组方法中的push()和shift()或者unshift()和pop()方法&#xff0c;先将数组中的第一个或者最后一个再次添加进数组中&#xff0c;然后再将第一个或最后一个删除&am…

python开源爬虫项目违法吗_爬虫究竟是合法还是违法的?

法律没有对爬虫行为有司法解释&#xff0c;从已有判决案例来看主要是看你数据用途/是否有商业竞争/商业侵权/扰乱破坏对方软件正常经营&#xff0c;而且必须是对方有证据来举证你。 现在已有案例对爬虫的判决依据是《刑法》第285条&#xff0c;非法获取计算机信息系统罪&#x…

关键字加亮--JS方法 (转载)

形如Google,Baidu的搜索关键字加亮&#xff0c;我比较了好几个&#xff0c;还是脚本之家的最好&#xff0c;javascript方法实现很简单&#xff0c;如果添加上面很炫&#xff0c;有需要的仁兄可以看看。1、单个关键字加亮代码&#xff1a; <div id"txt"> 用JS让…

今天再积累一个很菜的问题,union union all

union 会删除重复的列union all不会删除重复的列转载于:https://www.cnblogs.com/zhangzheny/archive/2007/01/31/635741.html

js中图片无缝切换的两种方法

第一种&#xff1a;只适应于可视区只有一个元素的时候&#xff0c;例如整屏切换效果。下面我写的是自适应屏幕宽度的轮播图 实现步骤&#xff1a; 1、屏幕自适应的处理&#xff1a;当屏幕大小大于1000的时候&#xff0c;让图片居中&#xff0c;解决办法是&#xff0c;用图片的宽…

java nio 多路复用_JAVA的网络IO模型彻底讲解|面试

1&#xff0c;最原始的BIO模型该模型的整体思路是有一个独立的Acceptor线程负责监听客户端的链接&#xff0c;它接收到客户端链接请求之后为每个客户端创建一个新的线程进行链路处理&#xff0c;处理完成之后&#xff0c;通过输出流返回应答给客户端&#xff0c;线程销毁。这就…

今天终于明白那个*号是什么意思了!!

老是使用模式窗口&#xff0c;模式窗口的页面上加一个下面的东西&#xff0c;要清楚缓存 <% OutputCache Duration"3" VaryByParam"*" %> 以前不知道那个*号是什么意思&#xff0c;今天无意间查了帮助&#xff0c;原来这个参数是代表无论以post还是…