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 相关文章推荐
node.js chat程序如何实现Ajax long-polling长链接刷新模式
Mar 13 Javascript
深入剖析JavaScript中的枚举功能
Mar 06 Javascript
jQuery实现统计输入文字个数的方法
Mar 11 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
Jul 10 Javascript
jquery调整表格行tr上下顺序实例讲解
Jan 09 Javascript
封装属于自己的JS组件
Jan 27 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
Jan 12 Javascript
Vue.js:使用Vue-Router 2实现路由功能介绍
Feb 22 Javascript
详解vue配置后台接口方式
Mar 29 Javascript
vue2.0 获取从http接口中获取数据,组件开发,路由配置方式
Nov 04 Javascript
vue实现信息管理系统
May 30 Javascript
让Vue响应Map或Set的变化操作
Nov 11 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
简单的自定义php模板引擎
2016/08/26 PHP
Laravel使用RabbitMQ的方法示例
2019/06/18 PHP
javascript静态的url如何传递
2007/05/03 Javascript
十个迅速提升JQuery性能让你的JQuery跑得更快
2012/12/10 Javascript
分享12个实用的jQuery代码片段
2016/03/09 Javascript
一次$.getJSON不执行的简单记录
2016/07/19 Javascript
jQuery树形控件zTree使用小结
2016/08/02 Javascript
详解Node.js如何开发命令行工具
2016/08/14 Javascript
Node.js复制文件的方法示例
2016/12/29 Javascript
Vue数据驱动模拟实现2
2017/01/11 Javascript
浅谈JavaScript find 方法不支持IE的问题
2017/09/28 Javascript
switchery按钮的使用方法
2017/12/18 Javascript
jQuery实现点击图标div循环放大缩小功能
2018/09/30 jQuery
vue项目中使用eslint+prettier规范与检查代码的方法
2020/01/16 Javascript
vuejs中父子组件之间通信方法实例详解
2020/01/17 Javascript
不依任何赖第三方,单纯用vue实现Tree 树形控件的案例
2020/09/21 Javascript
JavaScript实现点击切换功能
2021/01/27 Javascript
[07:55]2014DOTA2 TI正赛第三日 VG上演推进荣耀DKEG告别
2014/07/21 DOTA
[01:16:28]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第二场 2月23日
2021/03/11 DOTA
python使用turtle库绘制树
2018/06/25 Python
Python3实现统计单词表中每个字母出现频率的方法示例
2019/01/28 Python
Python logging设置和logger解析
2019/08/28 Python
pycharm无法导入本地模块的解决方式
2020/02/12 Python
python使用pyecharts库画地图数据可视化的实现
2020/03/25 Python
利用python中的matplotlib打印混淆矩阵实例
2020/06/16 Python
Python之Sklearn使用入门教程
2021/02/19 Python
韩国休闲女装品牌网站:ANAIS
2016/08/24 全球购物
日语专业毕业生自荐信
2013/11/11 职场文书
电台编导求职信
2014/05/06 职场文书
最新离婚协议书范本
2014/08/19 职场文书
学生会竞选演讲稿学习部
2014/08/25 职场文书
党的群众路线对照检查材料思想汇报(学校)
2014/10/04 职场文书
2014年幼儿园个人工作总结
2014/11/10 职场文书
公务员政审材料
2014/12/23 职场文书
环保建议书作文300字
2015/09/14 职场文书
导游词之日本富士山
2020/01/06 职场文书