javascript - 提高第一个 div 的不透明度,同时减少第二个。并循环

标签 javascript jquery css css-transitions

我有 2 个带有背景图像的 div。我想同时提高第一个 div 的不透明度并减少另一个的不透明度。我想循环播放。我想获得转换背景的平滑效果。有这样的方法吗?

<div class="first"></div>
<div class="second"></div>

.first, .second {
    position: absolute;
    height: 100%;
    width: 100%;
}
.first {
    background: url(http://placehold.it/350x150);
    background-size: cover;
    opacity: 0;
}
.second {
    background: url(http://placehold.it/250x150);
    background-size: cover;
    opacity: 1;
}

jsfiddle

最佳答案

当然可以。创建一个函数,在每个元素的链中使用 jQuery.animate() 将其不透明度设置为其值的倒数。使用函数本身作为第二个动画函数的回调。

<div class="box" id="box1"></div>
<div class="box" id="box2"></div>

var box = $('.box');

function animateOpacity() {

    box.each(function () {

        var opacity = parseInt($(this).css('opacity'));

        $(this).animate({
            opacity: 1 - opacity
        }, 800).animate({
            opacity: opacity
        }, 800, animateOpacity);
    });
}

JSFiddle demo

关于javascript - 提高第一个 div 的不透明度,同时减少第二个。并循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25232668/

相关文章:

javascript - ExtJS粘南面板

javascript - Google 应用程序脚本打开新窗口

javascript - 更换 Angular 深度观察者

java - 如何从 servlet 获取 ajax 调用的响应

HTML, CSS 居中一个盒子

javascript - 有没有办法用 css 给背景图片上色?如,只是图像

javascript - 如何将数据传递到 JQuery 脚本

javascript - 如何在取消下拉列表更改事件时设置以前的值

javascript - 从 Electron 主脚本触发点击

html - 制作一个由 4 个单独的正方形组成的正方形