2011-02-17 55 views
11

我想淡入淡出背景色使用jQuery,我試過下面的代碼,它影響完整的div內容,我只需要爲背景色添加閃光效果。jquery flash效果

$('.countbox').css("background-color","#FF0000").fadeIn("fast").delay(800) 
    .fadeout("fast"); 
<div class="countbox">checkout</div> 

我也試過這個,但它不工作!

$('.countbox').css("background-color","#FF0000").fadeIn("fast").delay(800).css("background-color","#FFFFFF"); 

有什麼問題,任何人都可以幫助我!

編輯

糟糕! 我的答案不適用於所有窗口。哪一個只給當前窗口提供閃光效果,但我需要爲所有窗口獲得閃光效果。 例如: - 當我點擊按鈕時,它應該給我所有窗口的div的閃光效果,就像這個website一樣。

+0

你迷惑 「窗口」 與 「格」? AFAIK,你的意思是你想要所有具有特定CSS樣式的元素的閃光效果。 – 2011-04-18 08:51:26

+0

我不是在談論多個div ...這關於瀏覽器窗口。你可以在這裏看到閃光拍賣... http://www.beezid.com/ ..當一些點擊出價按鈕時,該效果適用。..這就是我想要的 – Gowri 2011-04-18 09:05:57

+2

所以,你想要一些「閃光」**所有**開放瀏覽器(遍佈互聯網)正在查看特定的網頁?就像那個拍賣頁面一樣,當有人出價時,所有瀏覽器都會看到該頁面?或者像Stack Overflow在有人添加新答案時閃爍一條消息?恐怕你提出了錯誤的問題。這需要XHR/Ajax。 – 2011-04-18 09:21:52

回答

5

因爲你在你的意見提要做到這一點在單獨的窗口,你需要有某種形式的回發到服務器的信號時,會出現這種情況。

延伸omerkirk的答案(這是做這個IMO的正確方法)。

做一個setInterval(function(){。get();});它週期性地從存儲當前狀態的某個後臺服務器獲取信息(每個用戶可能......)。當電流狀態的變化,您對當前窗口的背景做.animate();以匹配後臺服務器的...

這可能會非常棘手,問題,如果您有多個「駕駛」,而不是僅僅一個主窗口的窗口和x客戶端...

真的這是一個壞主意IMO ...

0

答案你不能動畫background-coloropacity。你只能動畫它的顏色。

Check this plugin

0

這個工作對我來說沒有任何插件

$('.countbox').css("background-color","#FF0000"); 
setTimeout(function() { $('.countbox').css("background-color","#FFFFFF"); },800); 

我們也可以連續使用顏色setInterval的這個方法裏面隨機生成的顏色閃爍。

0

這應該工作。 Jquery有一個自己的動畫函數,你不必使用任何插件。

$(".countbox").animate({backgroundColor: "#ff0000"}, 1000); 

這應該在1000 ms(1秒)內將背景顏色從初始值設置爲#ff0000。我認爲你應該包含來自jQueryUI的動畫包。

希望它可以幫助

1

回答更新基於意見

這將是多一點的工作可能比你希望它是。你將需要一個有2個表的數據庫。表將將舉行活動的會話ID和表2將舉行的消息:

tblSessions 
    ID   Int 
    LastSeen  DateTime 
    SessionID  Varchar(255) 

tblMessages 
    ID   Int 
    Timestamp  DateTime 
    SessionID  Varchar(255) 
    Message  Varchar(255) 

當訪問者來到你的頁面,你需要檢查,如果遊客有一個會話ID。如果訪問者已有會話ID,請更新tblSessions表中的LastSeen列。如果訪問者沒有會話ID,則分配並將其添加到tblSessions表中。這些代碼應該在加載時在您的所有頁面上運行。

您需要在數據庫表tblSessions上運行查詢以刪除所有具有比某些X時間早的LastSeen的條目。 X的值應該是5分鐘。該查詢可以在每個頁面加載的頂部或服務器後端進程中運行。

現在,無論何時您想要刷新所有人的屏幕,只需在tblMessages中爲tblSessions中的每個條目添加條目。將Timestamp設置爲發送消息的時間,並將消息設置爲「閃爍」。

在JavaScript的瀏覽器端,使用setInterval設置輪詢功能。在您的輪詢函數中,向服務器端頁面調用ajax腳本以返回任何消息。此服務器端腳本應查詢tblMessages以獲取當前會話ID的任何條目並將其傳回。它也應該刪除表中的條目。

回到您的javascript輪詢功能,您可以檢查「Flash」消息並刷新屏幕。更頻繁的輪詢功能被稱爲更多實時您的訪問者將是,更多的負載將在您的服務器上。

就像tbleSessions表一樣,如果表格中的舊條目超出了X + 1分鐘時間,或者您將在表格中得到舊的結果,導致問題不斷出現,您可能希望從tblMessages表中刪除舊條目。

所以..這將閃爍屏幕,任何人訪問您的頁面,在大致相同的時間。我粗略地說,因爲沒有辦法在網絡滯後的同時閃爍,每個人都在稍微不同的時間進行輪詢......不管怎麼說,都不是那麼容易。

0

爲了閃光燈客戶端(單個瀏覽器)的背景,你可以使用jQuery .animate()。您將在回調中或作爲功能使用此功能,當它必須閃光燈
正如你想flash發生在整個互聯網上,你需要在所有打開的瀏覽器上運行這個動畫。有兩種方法可以做到這一點。

  1. 集在客戶端上超時,其 將檢查服務器的數據是否 它應該閃光燈,還是不行。 這樣做的下邊是你必須經常輪詢 如果你想要「差不多 直播」的數據,並且閃光燈不會 發生在同一時間爲 大家。
  2. 你提出了一個服務器端回調,它會通知所有打開的客戶端閃存,當數據發生變化時,但你將無法做到沒有服務器端邏輯。與ASP.NET網頁做這個閱讀本http://msdn.microsoft.com/en-us/library/ms178208.aspx
1

這是一個遲到的回答,我發現您的文章試圖找到我自己的項目^ ^,我開發的,前一陣子,一個jQuery插件,不正是你想要做的。

這是非常容易使用:

$("selector").flash() 

當然有一些配置成爲可能。

檢查演示,並隨意使用/叉。

https://github.com/MarechJ/jQuery.flash