Jquery 设置标题的自动翻转


Posted in Javascript onOctober 03, 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 相关文章推荐
javascript读取xml
Nov 04 Javascript
javascript类继承机制的原理分析
Sep 12 Javascript
详解JavaScript函数
Dec 01 Javascript
关于function类中定义变量this的简单说明
May 28 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
Nov 24 Javascript
Vue v2.4中新增的$attrs及$listeners属性使用教程
Jan 08 Javascript
JavaScript常用截取字符串的三种方式用法区别实例解析
May 15 Javascript
vue中的router-view组件的使用教程
Oct 23 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
May 04 jQuery
javascript实现导航栏分页效果
Jun 27 Javascript
Vue实现拖放排序功能的实例代码
Jul 08 Javascript
Vuex的实战使用详解
Oct 31 Javascript
点击下载链接 弹出页面实现代码
Oct 01 #Javascript
点击文章内容处弹出页面代码
Oct 01 #Javascript
js类的静态属性和实例属性的理解
Oct 01 #Javascript
XmlUtils JS操作XML工具类
Oct 01 #Javascript
PPK 谈 JavaScript 的 this 关键字 [翻译]
Sep 29 #Javascript
一个JS小玩意 几个属性相加不能超过一个特定值.
Sep 29 #Javascript
IE FF OPERA都可用的弹出层实现代码
Sep 29 #Javascript
You might like
访问编码后的中文URL返回404错误的解决方法
2014/08/20 PHP
PHP实现数组递归转义的方法
2014/08/28 PHP
php中二维数组排序问题方法详解
2015/08/28 PHP
PHP中Closure类的使用方法及详解
2015/10/09 PHP
PHP实现无限分类的实现方法
2016/11/14 PHP
PHP大文件分片上传的实现方法
2018/10/28 PHP
PHP实现爬虫爬取图片代码实例
2021/03/03 PHP
做网页的一些技巧(续)
2007/02/01 Javascript
jquery map方法使用示例
2014/04/23 Javascript
jQuery filter函数使用方法
2014/05/19 Javascript
jQuery实现点击该行即可删除HTML表格行
2014/10/17 Javascript
jQuery中:lt选择器用法实例
2014/12/29 Javascript
js查找节点的方法小结
2015/01/13 Javascript
DEDECMS如何为文章添加HOT NEW标志图片
2015/08/14 Javascript
jQuery实现获取绑定自定义事件元素的方法
2015/12/02 Javascript
js微信分享API
2020/10/11 Javascript
基于VUE选择上传图片并页面显示(图片可删除)
2017/05/25 Javascript
element-ui 设置菜单栏展开的方法
2018/08/22 Javascript
js实现时间日期校验
2020/05/26 Javascript
[25:45]2018DOTA2亚洲邀请赛4.5SOLO赛 Sylar vs Paparazi
2018/04/06 DOTA
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python数据类型_元组、字典常用操作方法(介绍)
2017/05/30 Python
Django开发的简易留言板案例详解
2018/12/04 Python
对python PLT中的image和skimage处理图片方法详解
2019/01/10 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
2020/03/09 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
h5封装下拉刷新
2020/08/25 HTML / CSS
美国旅游网站:Tours4Fun
2017/02/17 全球购物
雷曼兄弟的五金店:Lehman’s Hardware Store
2019/04/10 全球购物
英国领先的电动可调床制造商:Laybrook
2019/12/26 全球购物
干部下基层实施方案
2014/03/14 职场文书
2014年教育教学工作总结
2014/11/13 职场文书
毕业生就业推荐表导师评语
2014/12/31 职场文书
通用员工手册范本
2015/05/14 职场文书
机关工会工作总结2015
2015/05/26 职场文书
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
2021/04/01 PHP