2011-09-18 52 views
12

我一直在尋找一個通知欄,就像本網站上的通知欄一樣,它顯示在頂部,通知用戶更改等。它應該具有被關閉的能力。我所能找到的jquery是this one可以被解僱的jQuery通知欄?

有沒有人有任何其他的建議或建議?

+1

這是真的* *容易。即使這個網站有一個! – Blender

+0

@Blender:「即使這個」聽起來很簡單,因爲*即使* Stackoverflow也能運行。 –

+0

本網站上的大部分內容都非常簡單(並且編碼明顯)。 – Blender

回答

24

超級容易建立自己的。只要將其作爲第<div><body>標籤下,和CSS設置是這樣的:

#notify { 
    position:relative; 
    width:100%; 
    background-color:orange; 
    height:50px; 
    color:white; 
    display:none; 
} 

然後在您的通知,只要向下滑動:

$('#notify').html('new message').slideDown(); 

和一個點擊事件添加到關閉並清除通知:

$('#notify').click(function(){ 
    $(this).slideUp().empty(); 
}); 

演示:http://jsfiddle.net/AlienWebguy/Azh4b/

如果您想真正使其像StackOverflow一樣,您只需在發出通知時設置一個cookie,然後每個頁面加載顯示所有具有適用cookie的通知。

如果您想要多個通知,請將#notify更改爲.notify並堆疊起來。事情是這樣的:

$('.notify').live('click',function() { 
    $(this).slideUp('fast',function(){$(this).remove();}); 
}); 

$(function(){ 
    notify('You have earned the JQuery badge!'); 
    notify('You have earned the Super Awesome badge!'); 
}); 

function notify(msg) { 
    $('<div/>').prependTo('body').addClass('notify').html(msg).slideDown(); 
} 

演示:http://jsfiddle.net/AlienWebguy/5hjPY/

+0

從來沒有考慮建立我自己的...是有道理的。謝謝你,謝謝你的好例子:) – Paul

+0

不客氣,很高興幫助:) – AlienWebguy

2

我已經爲我的幾個項目做了一些非常類似的事情。

有一個JSFiddle demo,它可以工作,但它可以從我的個人庫中直接獲取 - 可能使用清理和優化的代碼,但它對它的工作原理給予了很好的印象。

我的代碼額外的好處是它不顯示重複的項目 - 它「ping」現有的項目。點擊通知上的任何地方關閉它。

我可以看到的唯一缺點是它覆蓋了一些主要內容,但如果您將通知容器放在position: static的內容頂部,那麼這是可以修復的。

請讓我知道是否有任何細節你想讓我解釋;在一個答案中有相當多的代碼需要運行。

我可能會寫一個jQuery插件,在某些時候這樣做,看到只有一個例子。我會在這裏發佈它。


NB。 setInterval()僅用於演示目的。此外,還有不同的彩色警報(成功,信息,警告,錯誤 - 分別爲綠色,藍色,橙色和紅色)。