Jquery 設(shè)置標題的自動翻轉(zhuǎn)
更新時間:2009年10月03日 10:41:29 作者:
我們平時在開發(fā)web程序的時候,想把一個新聞源滾動顯示新聞的條目的標題及內(nèi)容摘要,而且是每次一條,有點類似csdn的滾動廣告。
即一條新聞滾進視圖之后,會暫停幾秒鐘,然后繼續(xù)向上2滾動,淡出視圖,同時,下一條新聞接著滾入視圖。這次主要是用jquery來開發(fā)這個功能,里面肯定有許多不足之處,歡迎大家點評。
先粘貼一下代碼,
<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>
我們來庖丁解牛一下這些代碼,首先來看樣式,因為我們一次只顯示一條新聞記錄,所以,我們應(yīng)該把高度也設(shè)為一條記錄的,在這里設(shè)為200px,而且如果超了的話,我們就自動隱藏起來overflow=hidden。在這里,數(shù)據(jù)源我們用的是feed.xml,Jquery加載并讀取xml文件是很簡單的,可以參考上面的寫法,通過讀取xml文件,取出數(shù)據(jù),進行組裝,就得到了要顯示的html代碼段并附加到#container中,同時,在滾動顯示中,我們需要設(shè)置兩個變量,一個用于記錄當(dāng)前可見的標題,另一個用于記錄剛剛滾動出視圖的標題。并且讓當(dāng)前的記錄顯示在最上方,一定要注意的是,位置不能為static。最后,就是寫一個函數(shù),每次自動調(diào)用記錄的顯示。jquery還有很多的插件,可以更加簡化這些操作,以后多學(xué)習(xí)了。如果想學(xué)習(xí)jquery,個人推薦jquery基礎(chǔ)教程,jonathan chaffer編寫的,很不錯,很適合初學(xué)者,國內(nèi)其他的人寫的,里面就魚龍混雜了。
先粘貼一下代碼,
復(fù)制代碼 代碼如下:
<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>
我們來庖丁解牛一下這些代碼,首先來看樣式,因為我們一次只顯示一條新聞記錄,所以,我們應(yīng)該把高度也設(shè)為一條記錄的,在這里設(shè)為200px,而且如果超了的話,我們就自動隱藏起來overflow=hidden。在這里,數(shù)據(jù)源我們用的是feed.xml,Jquery加載并讀取xml文件是很簡單的,可以參考上面的寫法,通過讀取xml文件,取出數(shù)據(jù),進行組裝,就得到了要顯示的html代碼段并附加到#container中,同時,在滾動顯示中,我們需要設(shè)置兩個變量,一個用于記錄當(dāng)前可見的標題,另一個用于記錄剛剛滾動出視圖的標題。并且讓當(dāng)前的記錄顯示在最上方,一定要注意的是,位置不能為static。最后,就是寫一個函數(shù),每次自動調(diào)用記錄的顯示。jquery還有很多的插件,可以更加簡化這些操作,以后多學(xué)習(xí)了。如果想學(xué)習(xí)jquery,個人推薦jquery基礎(chǔ)教程,jonathan chaffer編寫的,很不錯,很適合初學(xué)者,國內(nèi)其他的人寫的,里面就魚龍混雜了。
您可能感興趣的文章:
- jQuery中:header選擇器用法實例
- Jquery修改頁面標題title其它JS失效的解決方法
- 讓新消息在網(wǎng)頁標題閃爍提示的jQuery代碼
- 基于jquery插件制作左右按鈕與標題文字圖片切換效果
- jQuery+Ajax實現(xiàn)表格數(shù)據(jù)不同列標題排序(為表格注入活力)
- Jquery創(chuàng)建層顯示標題和內(nèi)容且隨鼠標移動而移動
- jQuery 標題的自動翻轉(zhuǎn)實現(xiàn)代碼
- 使表格的標題列可左右拉伸jquery插件封裝
- jquery實現(xiàn)點擊彈出帶標題欄的彈出層(從右上角飛入)效果
- jQuery實現(xiàn)點擊標題輸入詳細信息
- jQuery實現(xiàn)獲取h1-h6標題元素值的方法
相關(guān)文章
jquery scrollTop方法根據(jù)滾動像素顯示隱藏頂部導(dǎo)航條
使用jquery的scrollTop方法監(jiān)視頁面垂直滾動像素,并根據(jù)像素隱藏或者顯示頂部的導(dǎo)航條,具體實現(xiàn)代碼如下,感興趣的朋友可以參考下哈2013-05-05打造個性化的功能強大的Jquery虛擬鍵盤(VirtualKeyboard)
本文主要講訴了如何一起一步一步打造個性化的VirtualKeyboard:功能強大的Jquery虛擬鍵盤,非常的詳細,非常實用,有需要的朋友可以參考下2014-10-10jQuery .tmpl(), .template()學(xué)習(xí)資料小結(jié)
昨晚無意中發(fā)現(xiàn)一個有趣的jQuery插件.tmpl(),其文檔在這里。2011-07-07jQuery 寫的簡單打字游戲可以提示正確和錯誤的次數(shù)
這篇文章主要介紹了使用jQuery寫的簡單打字游戲可以提示正確和錯誤的次數(shù),需要的朋友可以參考下2014-07-07基于Jquery 解決Ajax請求的頁面 瀏覽器后退前進功能,頁面刷新功能實效問題
做了幾個兼職,上天幫人完成頁面的時候順便做了一個ajax的請求。發(fā)現(xiàn)瀏覽器的刷新,后退,前進按鈕失效。于是乎google了一下。2010-12-12jqGrid日期格式的判斷示例代碼(開始日期與結(jié)束日期)
jqGrid日期格式的判斷示例代碼(開始日期與結(jié)束日期)。需要的朋友可以過來參考下,希望對大家有所幫助2013-11-11