div背景不透明度使用jquery连续变化

发布于 2024-11-27 07:31:48 字数 287 浏览 0 评论 0 原文

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

HTMLCSS

<div id="sample_div">

</div>

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

I want to change div background opacity to 100% to 0% and again 0% to 100% continuously. How would I go about doing this with jQuery? Here is the markup and CSS I have now.

HTML

<div id="sample_div">

</div>

CSS

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

坚持沉默 2024-12-04 07:31:48

您可以使用 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 本身无法设置颜色动画。有一个 颜色插件 可能可以做到这一点(我没有尝试过), 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);
    }
})();

或者使用计数器(实时副本):

(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);
      }
    }
})();

You can use jQuery's animate function to do that, or fadeIn and fadeOut which are basically wrappers for it. For example (live copy):

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

    doFadeIn();

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

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

You might want to put a termination condition in there, though, because otherwise it keeps going forever and that gets old fast. So for instance (live copy):

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

    doFadeIn();

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

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

Update: You've said below you want to animate the background color. It's the same principle as the above, but jQuery on its own can't animate colors. There's a color plug-in that may be able to do it (I haven't tried), and jQuery UI extends animate to do it as well. For example (live copy):

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

    doFadeIn();

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

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

Or with the counter (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);
      }
    }
})();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文