基于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 相关文章推荐
jquery实现页面图片等比例放大缩小功能
Feb 12 Javascript
jQuery中:image选择器用法实例
Jan 03 Javascript
JavaScript获取表单enctype属性的方法
Apr 02 Javascript
JS+CSS实现的简单折叠展开多级菜单效果
Sep 12 Javascript
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
Jul 05 Javascript
轮播的简单实现方法
Jul 28 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
Dec 02 Javascript
js实现瀑布流效果(自动生成新的内容)
Mar 16 Javascript
jQuery实现按比例缩放图片的方法
Apr 29 jQuery
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
May 14 jQuery
javascript中的相等操作符(==与===区别)
Dec 21 Javascript
Ajax实现异步加载数据
Nov 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将fileterms函数返回的结果变成可读的形式
2011/04/21 PHP
深入PHP数据缓存的使用说明
2013/05/10 PHP
php的数组与字符串的转换函数整理汇总
2013/07/18 PHP
Windows7下的php环境配置教程
2015/02/28 PHP
关于Laravel Route重定向的一个注意点
2017/01/16 PHP
PHP实现使用DOM将XML数据存入数组的方法示例
2017/09/27 PHP
Expandable &quot;Detail&quot; Table Rows
2007/08/29 Javascript
分享8款优秀的 jQuery 加载动画和进度条插件
2012/10/24 Javascript
js实现在文本框光标处添加字符的方法介绍
2012/11/24 Javascript
js或者jquery判断图片是否加载完成实现代码
2013/03/20 Javascript
JS实现金额转换(将输入的阿拉伯数字)转换成中文的实现代码
2013/09/30 Javascript
浅谈javascript中字符串String与数组Array
2014/12/31 Javascript
JS 对象属性相关(检查属性、枚举属性等)
2015/04/05 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
JS文字球状放大效果代码分享
2015/08/19 Javascript
jQuery插件版本冲突的处理方法分析
2017/01/16 Javascript
Vue2学习笔记之请求数据交互vue-resource
2017/02/23 Javascript
React中使用collections时key的重要性详解
2017/08/07 Javascript
vue如何在自定义组件中使用v-model
2018/05/14 Javascript
layui radio性别单选框赋值方法
2018/08/15 Javascript
vue 使某个组件不被 keep-alive 缓存的方法
2018/09/21 Javascript
[01:30]2016国际邀请赛中国区预选赛神秘商店火爆开启
2016/06/26 DOTA
使用wxPython获取系统剪贴板中的数据的教程
2015/05/06 Python
Python基于回溯法子集树模板解决m着色问题示例
2017/09/07 Python
python实现可视化动态CPU性能监控
2018/06/21 Python
Python3实现的旋转矩阵图像算法示例
2019/04/03 Python
python lxml中etree的简单应用
2019/05/10 Python
pytorch中如何使用DataLoader对数据集进行批处理的方法
2019/08/06 Python
python pymysql链接数据库查询结果转为Dataframe实例
2020/06/05 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
2020/07/14 Python
浅析Python requests 模块
2020/10/09 Python
python 窃取摄像头照片的实现示例
2021/01/08 Python
解决html5中video标签无法播放mp4问题的办法
2017/05/07 HTML / CSS
法人单位适用的授权委托书
2014/09/19 职场文书
python基于tkinter实现gif录屏功能
2021/05/19 Python
OpenCV-Python实现轮廓的特征值
2021/06/09 Python