基于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 相关文章推荐
js实现兼容IE6与IE7的DIV高度
May 13 Javascript
javascript判断iphone/android手机横竖屏模式的函数
Dec 20 Javascript
javascript原始值和对象引用实例分析
Apr 25 Javascript
JavaScript实现图片轮播的方法
Jul 31 Javascript
js中不同的height, top的区别对比
Sep 24 Javascript
学习JavaScript设计模式(继承)
Nov 26 Javascript
Node.js中Request模块处理HTTP协议请求的基本使用教程
Mar 31 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
May 11 Javascript
原生JS+Canvas实现五子棋游戏实例
Jun 19 Javascript
React教程之Props验证的具体用法(Props Validation)
Sep 04 Javascript
JavaScript实现数组全排列、去重及求最大值算法示例
Jul 30 Javascript
使用element-ui +Vue 解决 table 里包含表单验证的问题
Jul 17 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数组实现无限分类,不使用数据库,不使用递归.
2006/12/09 PHP
php语言注释,单行注释和多行注释
2018/01/21 PHP
php微信公众号开发之欢迎老朋友
2018/10/20 PHP
FireFox中textNode分片的问题
2007/04/10 Javascript
30个最好的jQuery 灯箱插件分享
2011/04/25 Javascript
Javascript玩转继承(二)
2014/05/08 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
2016/06/03 Javascript
Angular的Bootstrap(引导)和Compiler(编译)机制
2016/06/20 Javascript
javascript轮播图算法
2016/10/21 Javascript
Javascript实现页面滚动时导航智能定位
2017/05/06 Javascript
详解用vue.js和laravel实现微信支付
2017/06/23 Javascript
JS/HTML5游戏常用算法之碰撞检测 像素检测算法实例详解
2018/12/12 Javascript
Vue.js上传图片到阿里云OSS存储的方法示例
2018/12/13 Javascript
使用layui实现树形结构的方法
2019/09/20 Javascript
基于form-data请求格式详解
2019/10/29 Javascript
微信小程序实现日历小功能
2020/11/18 Javascript
Python psutil模块简单使用实例
2015/04/28 Python
django 常用orm操作详解
2017/09/13 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
2018/01/22 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
2018/09/17 Python
Python 数值区间处理_对interval 库的快速入门详解
2018/11/16 Python
解决Python下json.loads()中文字符出错的问题
2018/12/19 Python
Python面向对象之继承原理与用法案例分析
2019/12/31 Python
python通过opencv实现图片裁剪原理解析
2020/01/19 Python
详谈tensorflow gfile文件的用法
2020/02/05 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
2020/03/02 Python
Tensorflow之梯度裁剪的实现示例
2020/03/08 Python
DataFrame.groupby()所见的各种用法详解
2020/06/14 Python
python list等分并从等分的子集中随机选取一个数
2020/11/16 Python
美国高档帽子网上商店:Hats.com
2018/08/09 全球购物
担保书格式及范文
2014/04/01 职场文书
主持人演讲稿
2014/05/13 职场文书
遗失说明具结保证书
2015/02/26 职场文书
钢琴师观后感
2015/06/12 职场文书
2015年小学财务工作总结
2015/07/20 职场文书
mysql脏页是什么
2021/07/26 MySQL