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之大字符串的连接的StringBuffer 类
May 08 Javascript
选择TreeView控件的树状数据节点的JS方法(jquery)
Feb 06 Javascript
jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配
May 31 Javascript
jquery 动态创建元素的方式介绍及应用
Apr 21 Javascript
使用Node.js实现HTTP 206内容分片的教程
Jun 23 Javascript
js实现图片放大和拖拽特效代码分享
Sep 05 Javascript
浅谈JavaScript中的this指针和引用知识
Aug 05 Javascript
javascript编程实现栈的方法详解【经典数据结构】
Apr 11 Javascript
webpack-dev-server远程访问配置方法
Feb 22 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
Dec 03 Javascript
微信小程序websocket聊天室的实现示例代码
Feb 12 Javascript
Windows下安装 node 的版本控制工具 nvm
Feb 06 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
微盾PHP脚本加密专家php解密算法
2020/09/13 PHP
yii框架中的Url生产问题小结
2012/01/16 PHP
php防止sql注入示例分析和几种常见攻击正则表达式
2014/01/12 PHP
php连接oracle数据库及查询数据的方法
2014/12/29 PHP
以实例全面讲解PHP中多进程编程的相关函数的使用
2015/08/18 PHP
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
判断浏览器的内核及版本号方法汇总
2015/01/05 Javascript
深入理解JavaScript系列(27):设计模式之建造者模式详解
2015/03/03 Javascript
JS动态修改iframe内嵌网页地址的方法
2015/04/01 Javascript
jQuery页面元素动态添加后绑定事件丢失方法,非 live
2016/06/16 Javascript
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
2016/08/15 Javascript
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
2017/03/02 Javascript
Vue.set()动态的新增与修改数据,触发视图更新的方法
2018/09/15 Javascript
element ui table(表格)实现点击一行展开功能
2018/12/04 Javascript
微信小程序自定义导航栏
2018/12/31 Javascript
axios实现文件上传并获取进度
2020/03/25 Javascript
vue.js实现简单购物车功能
2020/05/30 Javascript
Python过滤函数filter()使用自定义函数过滤序列实例
2014/08/26 Python
python出现&quot;IndentationError: unexpected indent&quot;错误解决办法
2017/10/15 Python
python里使用正则的findall函数的实例详解
2017/10/19 Python
python 连接各类主流数据库的实例代码
2018/01/30 Python
基于numpy中数组元素的切片复制方法
2018/11/15 Python
解决python ogr shp字段写入中文乱码的问题
2018/12/31 Python
django解决跨域请求的问题详解
2019/01/20 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
2019/04/29 Python
pandas 时间格式转换的实现
2019/07/06 Python
python使用信号量动态更新配置文件的操作
2020/04/01 Python
python中wx模块的具体使用方法
2020/05/15 Python
Python3+PyCharm+Django+Django REST framework配置与简单开发教程
2021/02/16 Python
联想智利官方网站:Lenovo Chile
2020/06/03 全球购物
公司授权委托书范文
2014/09/21 职场文书
五一劳动节活动总结
2015/02/09 职场文书
golang 如何通过反射创建新对象
2021/04/28 Golang
彻底理解golang中什么是nil
2021/04/29 Golang
详解Js模块化的作用原理和方案
2021/04/29 Javascript
MySQL中dd::columns表结构转table过程及应用详解
2022/09/23 MySQL