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 相关文章推荐
JS 常用校验函数
Mar 26 Javascript
javascript 类方法定义还是有点区别
Apr 15 Javascript
javascript针对DOM的应用分析(二)
Apr 15 Javascript
jQuery的DOM操作之删除节点示例
Jan 03 Javascript
jQuery基础_入门必看知识点
Jul 04 Javascript
Angular2中select用法之设置默认值与事件详解
May 07 Javascript
layui选项卡效果实现代码
May 19 Javascript
Layui表格行工具事件与数据回填方法
Sep 13 Javascript
Vue 自定义指令实现一键 Copy功能
Sep 16 Javascript
JavaScript 面向对象基础简单示例
Oct 02 Javascript
vue实现图片懒加载的方法分析
Feb 05 Javascript
vue3种table表格选项个数的控制方法
Apr 14 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
Laravel 5框架学习之模型、控制器、视图基础流程
2015/04/08 PHP
PHP保存session到memcache服务器的方法
2016/01/19 PHP
Centos7.7 64位利用本地完整安装包安装lnmp/lamp套件教程
2021/03/09 Servers
JS 字符串连接[性能比较]
2009/05/10 Javascript
js获得指定控件输入光标的坐标兼容IE,Chrome,火狐等多种主流浏览器
2013/05/21 Javascript
解析jquery获取父窗口的元素
2013/06/26 Javascript
js中indexof的用法详细解析
2013/12/24 Javascript
jQuery的context属性用法实例
2014/12/27 Javascript
EasyUI中实现form表单提交的示例分享
2015/03/01 Javascript
js点击文本框后才加载验证码实例代码
2015/10/20 Javascript
jquery实现一个简单的表单验证实例
2016/03/30 Javascript
gulp-htmlmin压缩html的gulp插件实例代码
2016/06/06 Javascript
微信小程序 LOL 英雄介绍开发实例
2016/09/30 Javascript
JS中将多个逗号替换为一个逗号的实现代码
2017/06/23 Javascript
微信小程序的分类页面制作
2017/06/27 Javascript
基于Vue框架vux组件库实现上拉刷新功能
2017/11/28 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
2018/09/21 Javascript
微信小程序第三方框架对比 之 wepy / mpvue / taro
2019/04/10 Javascript
卸载vue2.0并升级vue_cli3.0的实例讲解
2020/02/16 Javascript
vue flex 布局实现div均分自动换行的示例代码
2020/08/05 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
Python中scatter函数参数及用法详解
2017/11/08 Python
python实现k-means聚类算法
2018/02/23 Python
Python将json文件写入ES数据库的方法
2019/04/10 Python
解决keras模型保存h5文件提示无此目录问题
2020/07/01 Python
全球领先的鞋类零售商:The Walking Company
2016/07/21 全球购物
J2EE的优越性主要表现在哪些方面
2016/03/28 面试题
教师实习自我鉴定
2013/12/14 职场文书
《大作家的小老师》教学反思
2014/04/16 职场文书
社区义诊活动总结
2014/04/30 职场文书
村党支部书记承诺书
2014/05/29 职场文书
小学语文复习计划
2015/01/19 职场文书
董事长助理岗位职责
2015/02/11 职场文书
求职信如何撰写?
2019/05/22 职场文书
Python turtle实现贪吃蛇游戏
2021/06/18 Python
Win11跳过联网界面创建本地管理账户的3种方法
2022/04/20 数码科技