jQuery 标题的自动翻转实现代码


Posted in Javascript onOctober 14, 2009

即一条新闻滚 进视图之后,会暂停几秒钟,然后继续向上2滚动,淡出视图,同时,下一条新闻接着滚入视图。这次主要是用jquery来开发这个功能,里面肯定有许多不足 之处,欢迎大家点评。
先粘贴一下代码,

<style> 
<%-- #news-feed 
{ 
padding: 0; 
margin: 0 0 0 10px; 
position: relative; 
height: 200px; 
width: 17em; 
overflow: hidden; 
} 
.headline 
{ 
position: absolute; 
height: 200px; 
top: 210px; 
overflow: hidden; 
}--%> 
</style> 
<script type="text/javascript"> 
$(document).ready(function() { 
$('#news-feed').each(function() { 
var $container = $(this); 
$container.empty(); 
$.get('feed.xml', function(data) { 
$('rss item', data).each(function() { 
var $link = $('<a></a>') 
.attr('href', $('link', this).text()) 
.text($('title', this).text()); 
var $headline = $('<h4></h4>').append($link); var pubDate = new Date($('pubDate', this).text()); 
var pubMonth = pubDate.getMonth() + 1; 
var pubDay = pubDate.getDate(); 
var pubYear = pubDate.getFullYear(); 
var $publication = $('<div></div>') 
.addClass('publication-date') 
.text(pubMonth + '/' + pubDay + '/' + pubYear); 
var $summary = $('<div></div>') 
.addClass('summary') 
.html($('description', this).text()); 
$('<div></div>') 
.addClass('headline') 
.append($headline, $publication) 
.appendTo($container); 
}); 
var currentHeadline = 0, oldHeadline = 0; 
var hiddenPosition = $container.height() + 10; 
$('div.headline').eq(currentHeadline).css('top', 0); 
var headlineCount = $('div.headline').length; 
var pause; 
var headlineRotate = function() { 
currentHeadline = (oldHeadline + 1) % headlineCount; 
$('div.headline').eq(oldHeadline).animate( 
{top: -hiddenPosition}, 'slow', function() { 
$(this).css('top', hiddenPosition); 
}); 
$('div.headline').eq(currentHeadline).animate( 
{top: 0}, 'slow', function() { 
pause = setTimeout(headlineRotate, 4000); 
}); 
oldHeadline = currentHeadline; 
}; 
pause = setTimeout(headlineRotate, 4000); 
$container.hover(function() { 
clearTimeout(pause); 
}, function() { 
pause = setTimeout(headlineRotate, 3000); 
}); 
}); 
}); 
}); 
</script> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div id="sidebar"> 
<h3>Recent News</h3> 
<div id="news-feed"> 
<a href="###">News Releases</a> 
</div> 
</div> 
</form> 
</body>

我们来庖丁解牛一下这些代码,首先来看样式,因为我们一次只显示一条新闻记录,所以,我们应该把高度也设为一条记录的,在这里设为200px, 而且如果超了的话,我们就自动隐藏起来overflow=hidden。在这里,数据源我们用的是feed.xml,Jquery加载并读取xml文件是 很简单的,可以参考上面的写法,通过读取xml文件,取出数据,进行组装,就得到了要显示的html代码段并附加到#container中,同时,在滚动 显示中,我们需要设置两个变量,一个用于记录当前可见的标题,另一个用于记录刚刚滚动出视图的标题。并且让当前的记录显示在最上方,一定要注意的是,位置 不能为static。最后,就是写一个函数,每次自动调用记录的显示。jquery还有很多的插件,可以更加简化这些操作,以后多学习了。如果想学习 jquery,个人推荐jquery基础教程,jonathan chaffer编写的,很不错,很适合初学者,国内其他的人写的,里面就鱼龙混杂了。
Javascript 相关文章推荐
bootstrap和jQuery.Gantt的css冲突 如何解决
May 29 Javascript
JavaScript简单生成 N~M 之间随机数的方法
Jan 13 Javascript
jQuery插件zTree实现清空选中第一个节点所有子节点的方法
Mar 08 Javascript
微信小程序 图片加载(本地,网路)实例详解
Mar 10 Javascript
vscode下vue项目中eslint的使用方法
Jan 13 Javascript
jQuery实现的鼠标拖动画矩形框示例【可兼容IE8】
May 17 jQuery
Node.js 多进程处理CPU密集任务的实现
May 26 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
Jul 10 Javascript
浅谈小程序globalData的那些事儿
Nov 01 Javascript
微信小程序点击按钮动态切换input的disabled禁用/启用状态功能
Mar 07 Javascript
jquery插件实现轮播图效果
Oct 19 jQuery
使用webpack和rollup打包组件库的方法
Feb 25 Javascript
JavaScript 替换Html标签实现代码
Oct 14 #Javascript
JavaScript null和undefined区别分析
Oct 14 #Javascript
JavaScript iframe的相互操作浅析
Oct 14 #Javascript
使用jQuery简化Ajax开发 Ajax开发入门
Oct 14 #Javascript
jQuery技巧大放送 学习jquery的朋友可以看下
Oct 14 #Javascript
JS+XML 省份和城市之间的联动实现代码
Oct 14 #Javascript
jquery 常用操作整理 基础入门篇
Oct 14 #Javascript
You might like
用DBSQL类加快开发MySQL数据库程序的速度
2006/10/09 PHP
cache_lite试用
2007/02/14 PHP
php数组添加与删除单元的常用函数实例分析
2015/02/16 PHP
PHP MYSQL实现登陆和模糊查询两大功能
2016/02/05 PHP
PHP实现获取并生成数据库字典的方法
2016/05/04 PHP
php、java、android、ios通用的3des方法(推荐)
2016/09/09 PHP
php字符串截取函数mb_substr用法实例分析
2019/06/25 PHP
laravel请求参数校验方法
2019/10/10 PHP
jquery 1.4.2发布!主要是性能与API
2010/02/25 Javascript
倒记时60刷新网页的js代码
2014/02/18 Javascript
PHP开发者必须掌握的6个关键字
2014/04/14 Javascript
浅谈javascript中for in 和 for each in的区别
2015/04/23 Javascript
SublimeText自带格式化代码功能之reindent
2015/12/27 Javascript
BootStrap 智能表单实战系列(十)自动完成组件的支持
2016/06/13 Javascript
jquery.multiselect多选下拉框实现代码
2016/11/11 Javascript
Vue中的slot使用插槽分发内容的方法
2018/03/01 Javascript
Vue波纹按钮组件制作
2018/04/30 Javascript
在小程序中使用canvas的方法示例
2018/09/17 Javascript
vue使用openlayers实现移动点动画
2020/09/24 Javascript
解决vue-cli输入命令vue ui没效果的问题
2020/11/17 Javascript
Python外星人入侵游戏编程完整版
2020/03/30 Python
python 接口返回的json字符串实例
2018/03/27 Python
PyQt5实现下载进度条效果
2018/04/19 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
2019/01/15 Python
Django框架模型简单介绍与使用分析
2019/07/18 Python
python+selenium+chromedriver实现爬虫示例代码
2020/04/10 Python
浅谈HTML5 Web Worker的使用
2018/01/05 HTML / CSS
出纳员岗位职责风险
2014/03/06 职场文书
村干部承诺书
2014/03/28 职场文书
3分钟演讲稿
2014/04/30 职场文书
汽车销售经理岗位职责
2014/06/09 职场文书
万里长城导游词
2015/01/30 职场文书
幼儿园国庆节活动总结
2015/03/23 职场文书
社区文明创建工作总结2015
2015/04/21 职场文书
初中班主任心得体会
2016/01/07 职场文书
PyTorch 如何检查模型梯度是否可导
2021/06/05 Python