zoukankan      html  css  js  c++  java
  • JQ实现新闻滚动条效果(跑马灯)

    先看效果:

                

    HTML代码

    <div class="outer" id="outer">
        <h3>最新公告</h3>
           <div class="inner" id="inner">
                 <ul>
                    <li><a href="#" title="">星期一不上班</a></li>
                    <li><a href="#" title="">星期二不上班</a></li>
                    <li><a href="#" title="">星期三不上班</a></li>
                   <li><a href="#" title="">星期四不上班</a></li>
                   <li><a href="#" title="">星期五不上班</a></li>
                   <li><a href="#" title="">星期六发工资</a></li>
                   <li><a href="#" title="">星期天发奖金</a></li>
                 </ul>
         </div>
    </div>
    View Code

    Css代码

    .outer{
       width:200px;
       border:1px solid #AAAAAA;
       margin:10px;
    }
    .inner{
       width:200px; height:85px;
       line-height:20px;
      overflow:hidden; background:#FFFFFF; 
    }
    h3{
       height:26px;
       background:#3B5998;
       color:white;
      line-height:26px;
      text-indent:6px;
      margin:0px;
    }
      .inner li{
      height:21px;
    
    }
    .inner ul{
      margin:0px;
      list-style:decimal; 
    }
    .inner li a{
      text-decoration:none;
      color:#3B5998;
    
    }
    View Code

    jq代码方式一

          原理:slideUp()--clone()--append()--remove()--传递参数-闭包           

     1 $(function (){
     2     show();      //首次触发
     3    var target=$("#inner");
     4    var Timer;
     5    Timer=setInterval(show,7100);   //七秒之后 再调用 setInterval
     6 
     7   })            
     8 
     9 function show(){
    10      var obj= $("ul li");
    11      var len=obj.length;
    12      for(var i=0;i<len;i++){
    13        setTimeout((function(para){
    14           return function (){
    15               obj.eq(para).slideUp("slow",function (){   //隐藏
    16                   var li=$(this).clone();                        //先克隆
    17                    $(this).parent().append(li.show());    //显示的附加在后面
    18                   $(this).remove();                             //再移除这个节点
    19                });
    20           }
    21        })(i),1000*i)
    22    }
    23 
    24 }
    View Code

         缺陷:无法应用到我们的hover中滴呀

    jq代码方式二 

         原理,不需要传递参数,也就不用闭包,而且支持hover,不错 是首选;

     1 var target=$("#inner");
     2 var Timer;
     3 target.hover(function (){
     4      clearInterval(Timer);    
     5      },function (){
     6      Timer=setInterval(function (){
     7      show2(target);
     8      },3000)
     9      }).trigger("mouseleave");
    10 })
    11 
    12 function show2(obj){
    13      var ul=obj.find("ul:first");
    14      var liHeight=ul.find("li:first").height();//获取行高;
    15      ul.animate({"marginTop":-liHeight+"px"},700,function (){ //整个ul向上移动一个li高度
    16     ul.css({marginTop:0}).find("li:first").appendTo(ul);//直接移动到的最后一位;
    17 
    18     })
    19 }
    View Code

    总结:

          完美。

          如果有必要的话,聪明的你可以把新闻,换成图片,就变成图片的滚动效果了。

  • 相关阅读:
    Apache conf文件配置个人总结
    JavaScript模块化编程之require.js与sea.js
    Huffman树与最优二叉树续
    数据结构之Huffman树与最优二叉树
    浅谈JavaScript中的字符串操作
    浅谈二叉树遍历的栈方法
    浅谈JavaScript中的柯里化函数
    JavaScript之再谈回调与闭包
    浅谈JavaScript中typeof与instanceof的区别
    Golang解压文件,带目录
  • 原文地址:https://www.cnblogs.com/mc67/p/4818286.html
Copyright © 2011-2022 走看看