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 相关文章推荐
jQuery使用数组编写图片无缝向左滚动
Dec 11 Javascript
jQuery旋转插件—rotate支持(ie/Firefox/SafariOpera/Chrome)
Jan 16 Javascript
js实现刷新iframe的方法汇总
Apr 27 Javascript
JS实现上下左右对称的九九乘法表
Feb 22 Javascript
同步异步动态引入js文件的几种方法总结
Sep 23 Javascript
微信小程序 教程之WXSS
Oct 18 Javascript
js判断PC端与移动端跳转
Dec 24 Javascript
原生javascript上传图片带进度条【实例分享】
Apr 06 Javascript
浅谈JS如何实现真正的对象常量
Jun 25 Javascript
jQuery实现注册会员时密码强度提示信息功能示例
Sep 05 jQuery
redux中间件之redux-thunk的具体使用
Apr 17 Javascript
详解Vue的七种传值方式
Feb 08 Vue.js
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
Notice: Trying to get property of non-object problem(PHP)解决办法
2012/03/11 PHP
ThinkPHP标签制作教程
2014/07/10 PHP
Zend Framework动作助手Redirector用法实例详解
2016/03/05 PHP
JQuery 小练习(实例代码)
2009/08/07 Javascript
js 数组的for循环到底应该怎么写?
2010/05/31 Javascript
Extjs优化(二)Form表单提交通用实现
2013/04/15 Javascript
window.print打印指定div指定网页指定区域的方法
2014/08/04 Javascript
JavaScript立即执行函数的三种不同写法
2014/09/05 Javascript
JQuery实现的图文自动轮播效果插件
2015/06/19 Javascript
五种js判断是否为整数类型方式
2015/12/03 Javascript
解决jQuery上传插件Uploadify出现Http Error 302错误的方法
2015/12/18 Javascript
Node.js常用工具之util模块
2017/03/09 Javascript
前端框架学习总结之Angular、React与Vue的比较详解
2017/03/14 Javascript
仿京东快报向上滚动的实例
2017/12/13 Javascript
解决Nodejs全局安装模块后找不到命令的问题
2018/05/15 NodeJs
angularjs手动识别字符串中的换行符方法
2018/10/02 Javascript
微信小程序:数据存储、传值、取值详解
2019/05/07 Javascript
[01:03:42]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Django 视图层(view)的使用
2018/11/09 Python
在matplotlib的图中设置中文标签的方法
2018/12/13 Python
python xpath获取页面注释的方法
2019/01/14 Python
python numpy中cumsum的用法详解
2019/10/17 Python
Python函数的默认参数设计示例详解
2019/12/01 Python
python3 logging日志封装实例
2020/04/08 Python
Reebok俄罗斯官方网上商店:购买锐步运动服装和鞋子
2016/09/26 全球购物
李宁官方网店:中国运动品牌
2017/11/02 全球购物
Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?
2015/08/04 面试题
J2ee常用的设计模式?说明工厂模式
2015/05/21 面试题
大学生职业生涯规划书模板
2014/01/03 职场文书
红头文件任命书范本
2014/06/05 职场文书
死亡赔偿协议书
2015/01/28 职场文书
朋友聚会祝酒词
2015/08/10 职场文书
高二英语教学反思
2016/03/03 职场文书
Vue如何清空对象
2022/03/03 Vue.js
RestTemplate如何通过HTTP Basic Auth认证示例说明
2022/03/17 Java/Android
Elasticsearch 批量操作
2022/04/19 Python