基于jQuery的公告无限循环滚动实现代码


Posted in Javascript onMay 11, 2012

在线演示:http://demo.3water.com/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 style="color:red;">公告:前端组上线一个月零八天,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.3water.com/jslib/jquery/jquery-1.7.2.min.js"></script> 
</head> 
<body> 
<div id="callboard"> 
<ul> 
<li> 
<span style="color:red;">公告[2]:前端组上线一个月零八天,PR升为3,BD权重1</span> 
</li> 
<li> 
<span style="color:red;">公告[3]:撤下了BloggerAds,原因为收入太少,打开速度慢!</span> 
</li> 
<li style="margin-top: 0px;"> 
<a href="https://3water.com">公告[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实例教程(19) 使用HoTMetal(5)
Dec 23 Javascript
js判断浏览器的比较全的代码
Feb 13 Javascript
基于jQuery的Spin Button自定义文本框数值自增或自减
Jul 17 Javascript
在页面加载完成后通过jquery给多个span赋值
May 21 Javascript
JavaScript trim 实现去除字符串首尾指定字符的简单方法
Dec 27 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
Jan 11 Javascript
用jQuery实现圆点图片轮播效果
Mar 19 Javascript
Express URL跳转(重定向)的实现方法
Apr 07 Javascript
关于 angularJS的一些用法
Nov 29 Javascript
React组件refs的使用详解
Feb 09 Javascript
基于Element封装一个表格组件tableList的使用方法
Jun 29 Javascript
详解JavaScript中的链式调用
Nov 27 Javascript
javascript 事件处理、鼠标拖动效果实现方法详解
May 11 #Javascript
通过百度地图获取公交线路的站点坐标的js代码
May 11 #Javascript
疯狂Jquery第一天(Jquery学习笔记)
May 11 #Javascript
jQuery 过滤not()与filter()实例代码
May 10 #Javascript
jQuery 在光标定位的地方插入文字的插件
May 10 #Javascript
javascript 在firebug调试时用console.log的方法
May 10 #Javascript
jQueryUI写一个调整分类的拖放效果实现代码
May 10 #Javascript
You might like
用PHP编程语言开发动态WAP页面
2006/10/09 PHP
php中stdClass的用法分析
2015/02/27 PHP
PHP实现适用于自定义的验证码类
2016/06/15 PHP
基于PHP实现短信验证码接口(容联运通讯)
2016/09/06 PHP
PHP面向对象程序设计之命名空间与自动加载类详解
2016/12/02 PHP
php图片合成方法(多张图片合成一张)
2017/11/25 PHP
jquery 卷帘效果实现代码(不同方向)
2013/02/05 Javascript
jquery.blockUI.js上传滚动等待效果实现思路及代码
2013/03/18 Javascript
JQuery获取表格数据示例代码
2014/05/26 Javascript
JavaScript中的Math.atan2()方法使用详解
2015/06/15 Javascript
javascript实现平滑无缝滚动
2020/08/09 Javascript
BootstrapValidator超详细教程(推荐)
2016/12/07 Javascript
AngularJS中$http的交互问题
2017/03/29 Javascript
ES6新特性之Symbol类型用法分析
2017/03/31 Javascript
jQuery中常用动画效果函数知识点整理
2018/08/19 jQuery
解决axios会发送两次请求,有个OPTIONS请求的问题
2018/10/25 Javascript
elementUI select组件使用及注意事项详解
2019/05/29 Javascript
Element-UI中关于table表格的那些骚操作(小结)
2019/08/15 Javascript
haskell实现多线程服务器实例代码
2013/11/26 Python
Python下线程之间的共享和释放示例
2015/05/04 Python
深入理解Django的中间件middleware
2018/03/14 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
2018/05/24 Python
Python之inspect模块实现获取加载模块路径的方法
2018/10/16 Python
Python基于smtplib模块发送邮件代码实例
2020/05/29 Python
Python while true实现爬虫定时任务
2020/06/08 Python
Python3爬虫中Ajax的用法
2020/07/10 Python
Python常用数字处理基本操作汇总
2020/09/10 Python
英国厨房与餐具用品为主的设计品牌:Joseph Joseph
2018/04/26 全球购物
会计与审计毕业生自荐信范文
2013/12/30 职场文书
《植物妈妈有办法》教学反思
2014/02/25 职场文书
信用社主任竞聘演讲稿
2014/05/23 职场文书
2014年行政人事工作总结
2014/12/09 职场文书
一文帮你理解PReact10.5.13源码
2021/04/03 Javascript
python获取淘宝服务器时间的代码示例
2021/04/22 Python
详解Python魔法方法之描述符类
2021/05/26 Python
golang定时器
2022/04/14 Golang