基于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 相关文章推荐
W3C Group的JavaScript1.8 新特性介绍
May 19 Javascript
JavaScript 高级篇之DOM文档,简单封装及调用、动态添加、删除样式(六)
Apr 07 Javascript
基于jquery的文章中所有图片width大小批量设置方法
Aug 01 Javascript
JavaScript实现从数组中选出和等于固定值的n个数
Sep 03 Javascript
在JavaScript中构建ArrayList示例代码
Sep 17 Javascript
浅谈Javascript的静态属性和原型属性
May 07 Javascript
jQuery实现的fixedMenu下拉菜单效果代码
Aug 24 Javascript
JavaScript资源预加载组件和滑屏组件的使用推荐
Mar 10 Javascript
vue基于Vue2.0和高德地图的地图组件实例
Apr 28 Javascript
vue轮播图插件vue-awesome-swiper的使用代码实例
Jul 10 Javascript
jQuery条件分页 代替离线查询(附代码)
Aug 17 jQuery
JS 实现发送短信验证码的“59秒后重新发送验证短信”功能
Aug 23 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
解析Ubuntu下crontab命令的用法
2013/06/24 PHP
PHP中IP地址与整型数字互相转换详解
2014/08/20 PHP
PHP中exec与system用法区别分析
2014/09/22 PHP
php中执行系统命令的方法
2015/03/21 PHP
PHP学习笔记(一):基本语法之标记、空白、和注释
2015/04/17 PHP
使用纯php代码实现页面伪静态的方法
2015/07/25 PHP
thinkPHP模板算术运算相关函数用法分析
2016/07/12 PHP
php源码的使用方法讲解
2019/09/26 PHP
PHP实现简单日历类编写
2020/08/28 PHP
jQuery使用prepend()方法在元素前添加内容用法实例
2015/03/26 Javascript
js 获取范围内的随机数实例代码
2016/08/02 Javascript
JavaScript 事件对内存和性能的影响
2017/01/22 Javascript
JavaScript实现审核流程状态的动态显示进度条
2017/03/15 Javascript
浅谈Angular4中常用管道
2017/09/27 Javascript
angularJS自定义directive之带参方法传递详解
2018/10/09 Javascript
vue组件开发props验证的实现
2019/02/12 Javascript
记录vue项目中遇到的一点小问题
2019/05/14 Javascript
Node.JS用纯JavaScript生成图片或滑块式验证码功能
2019/09/12 Javascript
vue+element-ui JYAdmin后台管理系统模板解析
2020/07/28 Javascript
vue实现广告栏上下滚动效果
2020/11/26 Vue.js
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
Python大数据之使用lxml库解析html网页文件示例
2019/11/16 Python
Python如何使用BeautifulSoup爬取网页信息
2019/11/26 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
2020/02/18 Python
HTML5 video 视频标签使用介绍
2014/02/03 HTML / CSS
LN-CC英国:伦敦时尚生活的缩影
2019/09/01 全球购物
学生发电厂实习自我鉴定
2013/09/22 职场文书
综合办公室个人的自我评价
2013/12/22 职场文书
搬家公司的创业计划书
2014/01/01 职场文书
安全生产汇报材料
2014/02/17 职场文书
中学生期中自我鉴定
2014/04/20 职场文书
检查机关领导群众路线教育实践活动个人整改措施
2014/10/28 职场文书
大学毕业谢师宴致辞
2015/07/27 职场文书
Python基础之数据类型知识汇总
2021/05/18 Python
Android 中的类文件和类加载器详情
2022/06/05 Java/Android
Docker部署Mysql8的实现步骤
2022/07/07 Servers