【问题标题】:div background opacity change continuously using jquerydiv背景不透明度使用jquery不断变化
【发布时间】:2011-10-16 19:52:43
【问题描述】:

我想将 div 背景不透明度从 100% 更改为 0%,然后再从 0% 更改为 100%。我将如何使用 jQuery 来做这件事?这是我现在拥有的标记和 CSS。

HTML

<div id="sample_div">

</div>

CSS

#sample_div{
    width:300px;
    height:200px;
    background:#65c6ed;
}

【问题讨论】:

  • 将来(即当所有浏览器都支持它时),您将能够仅使用 CSS3:jsfiddle.net/kaktus621/qxHCu/1(目前仅在 Webkit 浏览器中有效,因此没有适合您的有效解决方案问题)
  • 您在 jQuery 代码方面的进展如何? jsfiddle 中没有。
  • 是的。它是空的。我不知道该怎么做。但我知道它确实可以使用 jQuery 来完成。
  • @Martin Matysiak:这不是在 FF 中工作吗?
  • buildinternet.com/2009/09/… 在此您可以看到背景中的连续动画。

标签: jquery html background opacity


【解决方案1】:

您可以使用 jQuery 的 animate 函数来做到这一点,或者 fadeInfadeOut 这基本上是它的包装器。例如(live copy):

(function() {
    var div = $("selector_for_your_div");

    doFadeIn();

    function doFadeIn() {
        div.fadeIn("slow", doFadeOut);
    }

    function doFadeOut() {
        div.fadeOut("slow", doFadeIn);
    }
})();

不过,您可能希望在其中放置一个终止条件,否则它会一直持续下去,并且会变老。例如(live copy):

(function() {
    var div = $("#target"),
        countdown = 3;

    doFadeIn();

    function doFadeIn() {
        div.fadeIn("slow", doFadeOut);
    }

    function doFadeOut() {
        if (--countdown >= 0) {
            div.fadeOut("slow", doFadeIn);
        }
    }
})();

更新:您在下面说过要为背景颜色设置动画。原理和上面一样,但是jQuery本身不能为颜色设置动画。有一个color plug-in 可以做到这一点(我没有尝试过),jQuery UI 扩展了animate 也可以做到这一点。例如(live copy):

(function() {
    var div = $("#target");

    doFadeIn();

    function doFadeIn() {
      div.animate({
        backgroundColor: "#eeeeee"
      }, "slow", doFadeOut);
    }

    function doFadeOut() {
        div.animate({
        backgroundColor: "#ffffff"
      }, "slow", doFadeIn);
    }
})();

或与柜台(live copy):

(function() {
    var div = $("#target"),
        counter = 3;

    doFadeIn();

    function doFadeIn() {
      div.animate({
        backgroundColor: "#eeeeee"
      }, "slow", doFadeOut);
    }

    function doFadeOut() {
      if (--counter >= 0) {
        div.animate({
          backgroundColor: "#ffffff"
        }, "slow", doFadeIn);
      }
    }
})();

【讨论】:

  • 我只想为背景颜色设置动画。不是文字。
  • @Sassi:原理是一样的。我已经添加了更新,见上文。
猜你喜欢
  • 2011-07-06
  • 2018-02-12
  • 1970-01-01
  • 1970-01-01
  • 2011-10-24
  • 2013-11-08
  • 2011-11-26
  • 1970-01-01
相关资源
最近更新 更多