素材牛VIP会员

新闻公告具有时间间隔垂直滚动代码

 浏览:1317次-  评论:6次-  发布时间:2017-12-05
    Html
    Css
    Js
↑上面代码改变,会自动显示代码结果
jQuery调用版本:1.8.3
素材牛VIP永久特权
积分说明:注册即送10牛币,每日签到可获得5牛币,成为VIP会员可永久免牛币下载!   充值积分   充值会员   更多说明»
代码描述:一般企业网站都有公告功能模块,有些公告新闻是横向的,有的是垂直的,本章节就通过一个实例介绍一下如何实现具有时间间隔的垂直滚动代码

以上代码实现了我们想要的效果,下面就介绍一下它的实现过程。

一、实现原理:

autoAnimation函数可以通过animate()函数调整ul元素中第一个li元素的margintop属性值,调整的大小刚好是第一个li元素的高度,这样第一个li元素就会向上滚动逐渐被隐藏,第二个li元素也就逐渐被显示,然后再将第一个元素挪动到ul元素内部的最后面,这样不断的重复就是实现滚动效果,之所以有时间间隔是因为通过setTimeout()函数每5秒递归调用一次autoAnimation函数的原因。

二、代码注释:

1.$(document).ready(function(){}),文档结构完全加载完毕再去执行函数中的代码。

2.(function(win){})(window),创建并执行一个函数,参数为window对象。

3.var callboarTimer,声明一个变量,用于存储setTimeout()函数的返回值。

4.var callboard=$('#callboard'),获取id属性值为callboard'的对象。

5.var callboardUl=callboard.find('ul'),获取callboard下的所有ul对象集合。

6.var callboardLi=callboard.find('li'),获取callboard下的所有li对象集合。

7.var liLen=callboard.find('li').length,获取li元素的数量。

8.var initHeight=callboardLi.first().outerHeight(true),获取第一个li元素的高度,外边距计算在内。

9.win.autoAnimation=function(){},此函数用来实现向上滚动效果。

10.if(liLen<=1){return;},如果li元素的个数小于等于1,那就不用滚动了。

11.var self=arguments.callee,将当前函数对象的引用赋值给self变量。

12.var callboardLiFirst=callboard.find('li').first(),获取第一个li元素。

13. callboardLiFirst.animate({}),在500毫秒内调整margintop属性值,这样第一个li就会被隐藏,第二个li就会被显示出来,在margin-top调整完毕之后,将第一个li元素位置放置于ul元素的内部的最后面,最后5秒之后再调用autoAnimation函数,以此往复循环,这样就是先了不断的滚动效果。

14.callboard.mouseenter(function(){clearTimeout(callboarTimer); }),注册mouseenter事件处理函数,鼠标放在div上滚动停止。

15.mouseleave(function (){ callboarTimer=setTimeout(win.autoAnimation, 5000); }) ,注册mouseleave事件处理函数,当鼠标离开时,继续开始滚动。

16. setTimeout(window.autoAnimation,5000);  5秒后调用autoAnimation函数。

讨论这个常用代码(6)回答他人问题或分享心得会奖励牛币

华***n
2017年12月06日

学习了,

感谢分享~

回复
ws***hy
2017年12月27日

学习了  

回复
ws***hy
2017年12月27日

太棒了

回复
ws***hy
2017年12月27日

不错的 代码,很好

回复
ws***hy
2017年12月28日

学习了

回复
ws***hy
2017年12月29日

很好很好,不错不错的

回复
 文明上网,理性发言!   😉 阿里云幸运券,戳我领取
我的积分余额:0 已下载次数:1317
所需牛币:5 开始下载

牛币获取:签到、评论、充值    » 在线充值(10牛币=1元)