jquery的flash效果
我想使用jQuery fadeIn和fadeout 背景颜色 ,我尝试下面的代码,它影响完整的div内容,我需要为背景颜色添加闪光效果。
$('.countbox').css("background-color","#FF0000").fadeIn("fast").delay(800) .fadeout("fast"); checkout
我也尝试了这个,但它不起作用!
$('.countbox').css("background-color","#FF0000").fadeIn("fast").delay(800).css("background-color","#FFFFFF");
有什么问题可以帮助我!
编辑
哎呀! 我的答案不适用于所有窗口。 哪一个只为当前窗口提供闪光效果,但我需要获得所有窗口的闪光效果。 例如: – 当我点击按钮时,它应该为我提供所有窗口的div闪光效果,就像在这个网站上一样 。
如你在评论中提到的那样,在单独的窗口中执行此操作,您需要对服务器进行某种回发,以便在发生这种情况时发出信号。
扩展omerkirk的答案(这是做IMO的正确方法)。
做一个setInterval(function(){。get();}); 定期从存储当前状态的某个后台服务器获取信息(每个用户可能……)。 当前状态发生变化时,执行.animate();
在当前窗口的背景上匹配后台服务器的背景…
如果你有多个“驾驶”窗口而不是一个主窗口和x个客户端窗口,这可能会变得非常棘手和有问题……
真的,这是一个坏主意IMO …
考虑DrJokePu在jQuery animate backgroundColor上的答案
根据评论更新答案
这比你想要的工作要多得多。 您将需要一个包含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
为tblMessages
中的每个条目添加一个条目。 将Timestamp
设置为发送消息的时间,并将消息设置为“闪烁”。
在javascript的浏览器端,使用setInterval
设置轮询function。 在轮询函数中,将ajax脚本调用到服务器端页面以返回任何消息。 此服务器端脚本应查询tblMessages
以获取当前会话ID的任何条目并将其传回。 它还应该从表中删除条目。
回到您的javascript轮询function,您可以检查“Flash”消息并闪烁屏幕。 轮询function被称为访问者的实时性越高,但是在您的服务器上会有更多的负载。
就像使用tbleSessions
表一样,如果超过X + 1分钟的时间,您将需要从tblMessages
表中删除旧条目,否则您将在表中获得可能导致问题的旧结果。
所以..这将为访问您页面的任何人大致同时闪烁屏幕。 我粗略地说,因为没有办法在网络延迟的同时闪烁,每个人都会在略有不同的时间进行轮询……无论如何都不容易。
这是一个迟到的答案,我发现你的post试图找到我自己的项目^^,我刚刚开发了一个jQuery插件,它完全符合你的要求。
它非常易于使用:
$("selector").flash()
当然有一些配置可能。
检查演示并随意使用/ fork。
您无法为background-color
的opacity
设置动画。 您只能为其颜色设置动画。
检查这个插件 。
这适用于我没有任何插件
$('.countbox').css("background-color","#FF0000"); setTimeout(function() { $('.countbox').css("background-color","#FFFFFF"); },800);
我们还可以使用setInterval连续颜色闪烁,并在此方法中随机创建颜色。
这应该工作。 Jquery有自己的动画function,你不必使用任何插件。
$(".countbox").animate({backgroundColor: "#ff0000"}, 1000);
这应该在1000毫秒(1秒)内将背景颜色从其初始值设置为#ff0000。 我认为你应该包含来自jQueryUI的动画包。
希望能帮助到你
你正在寻找什么? 请看演示:
为了在客户端(单个浏览器)上刷新背景,您可以使用jquery .animate()
。 您将在回调时使用它,或者在必须闪烁时使用它。
由于您希望Flash在整个Internet上发生,因此您需要在所有打开的浏览器上运行此动画。 有两种方法可以做到这一点。
- 在客户端设置超时,检查服务器数据是否应该闪烁 。 这样做的缺点是,如果你想要“几乎实时”的数据,你必须经常轮询,并且闪光不会在每个人的同一时间发生。
- 你提出了一个服务器端回调,它会在数据发生变化时通知所有打开的客户端闪存 ,但如果没有服务器端逻辑,你将无法做到这一点。 使用ASP.NET网页执行此操作阅读此http://msdn.microsoft.com/en-us/library/ms178208.aspx