2011-02-17 54 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