基于jQuery的公告无限循环滚动实现代码
基于jQuery的公告无限循环滚动实现代码
发布时间:2016-12-30 来源:查字典编辑
摘要:在线演示:http://demo.jb51.net/js/2012/callboard/jQuery代码复制代码代码如下://第二版:New...

在线演示:http://demo.jb51.net/js/2012/callboard/

jQuery代码

复制代码 代码如下:

//第二版:Newton改造

(function (win){

var callboarTimer;

var callboard = $('#callboard');

var callboardUl = callboard.find('ul');

var callboardLi = callboard.find('li');

var liLen = callboard.find('li').length;

var initHeight = callboardLi.first().outerHeight(true);

win.autoAnimation = function (){

if (liLen <= 1) return;

var self = arguments.callee;

var callboardLiFirst = callboard.find('li').first();

callboardLiFirst.animate({

marginTop:-initHeight

}, 500, function (){

clearTimeout(callboarTimer);

callboardLiFirst.appendTo(callboardUl).css({marginTop:0});

callboarTimer = setTimeout(self, 5000);

});

}

callboard.mouseenter(

function (){

clearTimeout(callboarTimer);

}).mouseleave(function (){

callboarTimer = setTimeout(win.autoAnimation, 5000);

});

}(window));

setTimeout(window.autoAnimation, 5000);

HTML代码:

复制代码 代码如下:

<div id="callboard">

<ul>

<li>

<a href="http://www.qianduanzu.com/2012042036.html">公告:前端组主题正在整理中..有需要用的朋友请留个言,以方便及时通知!</a>

</li>

<li>

<span>公告:前端组上线一个月零八天,PR升为3,BD权重1</span>

</li>

</ul>

CSS代码:(可根据需求另设)

复制代码 代码如下:

#callboard { height:24px; line-height:24px; overflow:hidden;}

#callboard ul { padding:0;}

#callboard li { padding:0;}

完整演示代码:

复制代码 代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>滚动公告栏</title>

<style type="text/css">

header, nav, aside, menu, figure, article, footer { display:block; }

body, div, form, textarea, label, input, ul, ol, li, dl, dt, dd, p, span, a, img, h1, h2, h3, h4, h5, h6, tbody, tfoot, tr, th, td, pre, code, form, fieldset, legend, font { margin:0; padding:0; }

table { border-collapse:collapse; border-spacing:0; }

caption, th { text-align:left; }

sup { vertical-align:text-top; }

sub { vertical-align:text-bottom; }

li { list-style:none; }

fieldset, img { border:none; }

input, textarea, select { font-family:inherit; font-size:inherit; font-weight:inherit; *font-size:100%;

color:inherit; _color:#333; *color:#333;

outline:none; }

/*BASE CLASS*/

.cfix { *display:inline-block;*zoom:1}

.cfix:after { content:"."; display:block; height:0; clear:both; visibility:hidden; }

/*公告栏滚动CSS*/

#callboard { width:600px; margin:100px auto 0; height:24px; line-height:24px; overflow:hidden; font-size:12px; background-color:#f5f5f5;}

#callboard ul { padding:0; }

#callboard li { padding:0; }

</style>

<script type="text/javascript" src="http://demo.jb51.net/jslib/jquery/jquery-1.7.2.min.js"></script>

</head>

<body>

<div id="callboard">

<ul>

<li>

<span>公告[2]:前端组上线一个月零八天,PR升为3,BD权重1</span>

</li>

<li>

<span>公告[3]:撤下了BloggerAds,原因为收入太少,打开速度慢!</span>

</li>

<li>

<a href="http://www.jb51.net">公告[1]:前端组主题正在整理中..有需要用的朋友请留个言,以方便及时通知!</a>

</li>

</ul>

</div>

<>

<script type="text/javascript">

(function (win){

var callboarTimer;

var callboard = $('#callboard');

var callboardUl = callboard.find('ul');

var callboardLi = callboard.find('li');

var liLen = callboard.find('li').length;

var initHeight = callboardLi.first().outerHeight(true);

win.autoAnimation = function (){

if (liLen <= 1) return;

var self = arguments.callee;

var callboardLiFirst = callboard.find('li').first();

callboardLiFirst.animate({

marginTop:-initHeight

}, 500, function (){

clearTimeout(callboarTimer);

callboardLiFirst.appendTo(callboardUl).css({marginTop:0});

callboarTimer = setTimeout(self, 5000);

});

}

callboard.mouseenter(

function (){

clearTimeout(callboarTimer);

}).mouseleave(function (){

callboarTimer = setTimeout(win.autoAnimation, 5000);

});

}(window));

setTimeout(window.autoAnimation, 5000);

</script>

</body>

</html>

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类