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学习笔记9 prototype封装继承
Jan 11 Javascript
jQuery阻止同类型事件小结
Apr 19 Javascript
jquery获取被勾选的checked(选中)的那一行的3列和4列的值
Jul 04 Javascript
AngularJS使用angular-formly进行表单验证
Dec 27 Javascript
详解JavaScript的AngularJS框架中的作用域与数据绑定
Mar 04 Javascript
angular中使用Socket.io实例代码
Jun 03 Javascript
vue构建动态表单的方法示例
Sep 22 Javascript
微信小程序列表中item左滑删除功能
Nov 07 Javascript
关于element-ui的隐藏组件el-scrollbar的使用
May 29 Javascript
JS错误处理与调试操作实例分析
Apr 13 Javascript
vue iview 隐藏Table组件里的某一列操作
Nov 13 Javascript
javascript中call,apply,bind的区别详解
Dec 11 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
5.PHP的其他功能
2006/10/09 PHP
php Smarty 字符比较代码
2011/02/27 PHP
PHP时间戳 strtotime()使用方法和技巧
2013/10/29 PHP
php解决约瑟夫环示例
2014/04/09 PHP
Laravel 4 初级教程之Pages、表单验证
2014/10/30 PHP
php实现mysql事务处理的方法
2014/12/25 PHP
php上传文件并存储到mysql数据库的方法
2015/03/16 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
2016/09/30 PHP
Yii2第三方类库插件Imagine的安装和使用
2017/07/06 PHP
php实现微信和支付宝支付的示例代码
2020/08/11 PHP
form中限制文本字节数js代码
2007/06/10 Javascript
js设置cookie过期及清除浏览器对应名称的cookie
2013/10/24 Javascript
用JavaScript实现使用鼠标画线的示例代码
2014/08/19 Javascript
浅析JQuery中的html(),text(),val()区别
2014/09/01 Javascript
理解javascript封装
2016/02/23 Javascript
深入剖析JavaScript中的函数currying柯里化
2016/04/29 Javascript
JavaScript必知必会(二) null 和undefined
2016/06/08 Javascript
JavaScript 数组的深度复制解析
2016/11/02 Javascript
ES6学习教程之对象字面量详解
2017/10/09 Javascript
JavaScript实现的DOM绘制柱状图效果示例
2018/08/08 Javascript
对angular4子路由&amp;辅助路由详解
2018/10/09 Javascript
关于JavaScript 数组你应该知道的事情(推荐)
2019/04/10 Javascript
Vue CLI4 Vue.config.js标准配置(最全注释)
2020/06/05 Javascript
nuxt.js写项目时增加错误提示页面操作
2020/11/05 Javascript
Fiddler如何抓取手机APP数据包
2016/01/22 Python
详解python 拆包可迭代数据如tuple, list
2017/12/29 Python
Python引入多个模块及包的概念过程解析
2020/09/21 Python
Prometheus开发中间件Exporter过程详解
2020/11/30 Python
加拿大在线旅游公司:Flighthub
2019/03/11 全球购物
垃圾回收的优点和原理
2014/05/16 面试题
淘宝活动策划方案
2014/02/06 职场文书
经理任命书模板
2014/06/06 职场文书
检讨书1000字
2014/10/11 职场文书
MySQL 百万级数据的4种查询优化方式
2021/06/07 MySQL
MySQL数据库完全卸载的方法
2022/03/03 MySQL
MySQL详细讲解变量variables的用法
2022/06/21 MySQL