当前位置:  开发笔记 > 编程语言 > 正文

jQuery动画问题

如何解决《jQuery动画问题》经验,为你挑选了2个好方法。

我使用以下代码片段制作元素的背景浅蓝色,然后在30秒内慢慢淡化为白色:

$("#" + post.Id).css("background-color", "lightblue")
.animate({ backgroundColor: "white" }, 30000);

两个问题.

首先,有没有办法将不透明度淡化到100%?这样,如果我选择更改页面的背景颜色,我不必更改"白色"?

其次,大约每10或15次一次,背景保持浅蓝色并且不会褪色为白色.我正在使用最新版本的jQuery和UI核心.怎么可能出错?

编辑:赏金是解决第二个问题的问题.

EDIT2:

显然我被遗忘了,因为我说我推出了自己的解决方案,但没有显示出来.我的错.我不想自我推销.我的代码100%的工作时间,不需要jQuery.演示和代码可以在以下位置找到:

http://prettycode.org/2009/07/30/fade-background-color-in-javascript/



1> Kip..:

对于你的第二个问题:根据我的经验,这通常是因为页面上的其他地方发生了Javascript错误.一旦有一个Javascript异常,页面的其余部分就会停止运行Javascript.尝试安装Firebug(如果您还没有),然后打开"控制台"选项卡并启用它.然后,任何javascript错误或异常都将打印到控制台.

尝试的另一件事(这与我上次的陈述相矛盾......)是禁用所有浏览器插件以查看是否可以重新创建.有时它们会干扰页面上的脚本(尤其是GreaseMonkey).

如果您可以提供再现此动画问题的示例HTML代码段,那么我们将更容易为您提供帮助. 在我下面粘贴的脚本中,我可以整天点击它,尽可能快或慢,并且它永远不会为我动画.


对于第一个问题:我知道你说你找到了一个解决方法,但以下工作对我来说(即使在IE6上)所以我想我会发布它,因为它可能与你的想法有所不同.(请注意,通过jQuery.css()IE上的工作设置CSS"opacity"属性,而IE不直接在CSS中支持"opacity"属性.)








Click me

Test



2> redsquare..:

别忘了颜色插件.

看到这里

当颜色无法激活为蓝色时,您可以尝试使用回调函数将消息记录到控制台.然后,您可以检查事件是否实际触发并完成.如果确实如此,那么您可能会使用两个动画.第一个动画到中途房屋颜色然后使用回调动画为白色(所以你得到两个樱桃咬,如果外部失败但完成回调有第二个去)

如果您可以尝试重新创建问题或提供问题的URL,那将是一件好事.

例如

$("#" + post.Id).css("background-color", "lightblue")
   .animate({ backgroundColor: "#C0D9D9" }, 15000, function(){
      $(this).animate({ backgroundColor: "#ffffff" }, 15000)
});

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有