zoukankan      html  css  js  c++  java
  • 【js与jquery】jquery循环滚动新闻

    2.html代码:

    [php] view plain copy
     
    1. <h3>最新动态</h3>  
    2. <div class="scrollNews" >  
    3.          <ul>  
    4.     <li><a href="#" class="tooltip" title="甜美宽松毛衣今秋一定红.">甜美宽松毛衣今秋一定红.</a></li>  
    5.     <li><a href="#" class="tooltip" title="秋装百搭小马甲不到50元.">秋装百搭小马甲不到50元.</a></li>  
    6.     <li><a href="#" class="tooltip" title="修身韩版小西装万人疯抢.">修身韩版小西装万人疯抢.</a></li>  
    7.     <li><a href="#" class="tooltip" title="夏末雪纺店主含泪大甩卖.">夏末雪纺店主含泪大甩卖.</a></li>  
    8.     <li><a href="#" class="tooltip" title="瑞丽都疯狂推荐的秋装.">瑞丽都疯狂推荐的秋装.</a></li>  
    9.     <li><a href="#" class="tooltip" title="48元长款针织小开衫卖疯啦.">48元长款针织小开衫卖疯啦.</a></li>  
    10.     <li><a href="#" class="tooltip" title="长袖雪纺衫单穿内搭都超美.">长袖雪纺衫单穿内搭都超美.</a></li>  
    11.     </ul>  
    12. </div>  

    3.jquery代码:

    [php] view plain copy
     
    1. /*新闻滚动*/  
    2. $(function(){  
    3.         //将$(".scrollNews")对象作为参数传递给scollNews()函数的参数  
    4.         var $this = $(".scrollNews");  
    5.         //滚动定时器变量  
    6.         var scrollTimer;  
    7.         //hover()方法的含义是鼠标滑入滑出,它对应着两个事件,即mouseenter和mouseleave,因此可通过trigger("mouseleave")来触发hover事件的第二个函数  
    8.         $this.hover(  
    9.             function(){  
    10.                         clearInterval(scrollTimer);  
    11.             },  
    12.             function(){  
    13.                          scrollTimer = setInterval(function(){  
    14.                                 scrollNews( $this );//每3秒执行一次scrollNews函数  
    15.                          }, 3000 );  
    16.             }  
    17.         ).trigger("mouseleave");//当用户进入页面后就会触发hover事件的第二个函数,从而使内容滚动起来  
    18.   
    19. });  
    20. function scrollNews(obj){  
    21.    var $self = obj.find("ul:first"); //找到第一个ul元素  
    22.    var lineHeight = $self.find("li:first").height(); //获取第一个li元素的行高  
    23.    $self.animate({ "marginTop" : -lineHeight +"px" }, 600 , function(){  
    24.          //alert($self.css({marginTop:0}).find("li:first").text());//逐条获取  
    25.          //把所有匹配的元素追加到$self元素的后面,所以才出现这种周而复始滚动的效果  
    26.          $self.css({marginTop:0}).find("li:first").appendTo($self); //appendTo能直接移动元素  
    27.    })  
    28. }  


    分析:通过控制$(".scrollNews");对象内的<ul>元素的marginTop属性来得到动画效果。至于每次滚动的高度,可以通过获取<ul>元素内的第一个<li>元素的高度来达到目的。当每次滚动完毕后,需要把当前第一个<li>元素移动到<ul>元素内的最后,然后将<ul>元素的marginTop属性设置为零,这样动画才可以无限的循环滚动
     

  • 相关阅读:
    <<构建之法>>--第二次作业
    锁的内存语义
    MySQL触发器
    每天一个小示例 opencv(1)颜色直方图的统计 calcHist_Demo.cpp
    通过支持向量排名法来做行人鉴定
    数字信号处理101——DSP系统设计入门课程(1)
    matlab 与c++的混编
    FPGA图像处理之行缓存(linebuffer)的设计一
    基于FPGA的数字识别的实现
    使用matlab生成sine波mif文件
  • 原文地址:https://www.cnblogs.com/Alex80/p/6496182.html
Copyright © 2011-2022 走看看