jquery的flash效果

jquery的flash效果,jquery,jquery-animate,Jquery,Jquery Animate,我想要使用jQuery的fadeIn和fadeout背景颜色,我尝试了下面的代码,它会影响整个div内容,我只需要为背景颜色添加flash效果 $('.countbox').css("background-color","#FF0000").fadeIn("fast").delay(800) .fadeout("fast"); <div class="countbox">checkout</div> 有什么问题吗?谁能帮我 编辑 哎呀! 我的答案不适用于所

我想要使用jQuery的fadeIn和fadeout背景颜色,我尝试了下面的代码,它会影响整个div内容,我只需要为背景颜色添加flash效果

   $('.countbox').css("background-color","#FF0000").fadeIn("fast").delay(800)
    .fadeout("fast");
<div class="countbox">checkout</div>
有什么问题吗?谁能帮我

编辑

哎呀! 我的答案不适用于所有窗口。哪一个只为当前窗口提供闪光效果,但我需要为所有窗口获得闪光效果。 例如:-
当我点击按钮,它应该给我所有窗口的div闪光效果,就像在这个

考虑一下Jokepu博士的回答
您无法设置
背景色的
不透明度的动画。只能为其颜色设置动画


.

这对我来说不需要任何插件

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

我们还可以使用此方法内随机创建的颜色,使用setInterval连续彩色闪烁。

这应该可以。Jquery有自己的动画功能,您不必使用任何插件

$(".countbox").animate({backgroundColor: "#ff0000"}, 1000);
这将在1000毫秒(1秒)内将背景色从初始值设置为#ff0000。我认为你应该包括来自jQueryUI的动画包


希望在单独的窗口中执行此操作有所帮助,正如您在评论中所提到的,您需要向服务器进行某种形式的回发,以告知何时会发生这种情况

扩展柯克的答案(这是正确的方法)

执行setInterval(函数(){.get();});定期从存储当前状态的后台服务器获取信息(每个用户可能…)。当当前状态更改时,执行
.animate()在当前窗口的背景上匹配背景服务器的背景

如果您有多个“驱动”窗口,而不是只有一个主窗口和x个客户端窗口,那么这可能会变得非常棘手和有问题


这真的是个坏主意。

根据评论更新答案

这将是一个多一点的工作,比你可能想要的。您需要一个包含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
上运行查询,以删除
LastSeen
早于某个X时间的所有条目。X的值应该是5分钟。此查询可以在每个页面加载的顶部运行,也可以在服务器后端进程中运行

现在,只要您想刷新每个人的屏幕,就可以在
tblMessages
中为
tblSessions
中的每个条目添加一个条目。将
时间戳设置为发送消息的时间,并将消息设置为“flash”

在javascript的浏览器端,使用
setInterval
设置轮询函数。在轮询函数中,向服务器端页面调用ajax脚本以返回任何消息。此服务器端脚本应在
tblMessages
中查询当前会话ID的任何条目,并将其传回。它还应该从表中删除条目

回到javascript轮询功能中,您可以检查“Flash”消息并刷新屏幕。调用轮询函数的频率越高,访问者的实时性就越高,但是服务器上的负载就越大

就像使用
tbleSessions
表一样,如果
tblMessages
表中的旧条目超过(比如X+1分钟)的时间,您将希望从该表中删除它们,或者您将在该表中得到可能导致问题的旧结果


所以。。这将在大致相同的时间为访问您页面的任何人闪烁屏幕。我粗略地说,是因为没有办法在网络延迟和每个人在稍有不同的时间进行投票的情况下,在完全相同的时间闪烁。。。。无论如何,这不是一个简单的方法。

这就是你要找的吗?请看演示:

要在客户端(单浏览器)上闪烁背景,可以使用jquery
.animate()
。您将在回调中使用它,或者在需要刷新时将其用作函数
由于您希望flash在整个互联网上运行,因此需要在所有打开的浏览器上运行此动画。有两种方法可以做到这一点

  • 在客户端上设置超时 将检查服务器数据是否正确 它应该闪烁,或者不闪烁。阴暗面 这样做是你必须投票的 如果你想“几乎”的话 “实时”数据,闪存将不会 在同一时间发生 各位
  • 您启动一个服务器端回调,当数据发生更改时,它将通知所有打开的客户端进行闪存,但是如果没有服务器端逻辑,您将无法执行此操作。要使用ASP.NET网页执行此操作,请阅读以下内容

  • 这是一个迟来的回答,我发现你的帖子试图找到我自己的项目^^^,我在不久前开发了一个jQuery插件,它完全满足了你的需求

    它非常容易使用:

    $("selector").flash()
    
    当然也有一些可能的配置

    查看演示,可以随意使用/fork


    你好,亚历克斯,请检查我的编辑。。我想要所有窗口的闪光效果。。我希望你一定有这个想法!omerkirk我已经试过了。是的,它可以在当前窗口中工作,但不能在其他窗口中同时单击按钮。请检查我的edit@gowri我真的不确定你对所有窗口(浏览器窗口?或同一页面上的多个元素?)的含义。如果你是指所有浏览器窗口,那么我认为这是不可能的。如果你是说在同一个窗口上有多个元素,那么它应该会起作用,我只是在同一个类的多个div上尝试过,效果非常好
    $("selector").flash()