我有一个元素网格,其中一些是图像,一些是文本(全部垂直对齐,使用不同的 CSS 技术)。单击这些将隐藏 fadeOut() 的内容,并使用 fadeIn() 显示不同的内容。

我的问题分为两部分:

如何在过渡期间将初始隐藏的内容设置为 而不是 匹配前端的 CSS?文本未对齐,直到过渡完成。

其次,我怎样才能切换这个开关,以便可以逆转这个过程?

我的CSS:

.outer {
    position: relative;
    width: 144px;
    height: 144px;
    float: left;
    border: solid 1px #dddddd;
    margin: 10px;
}
.inner {
    position: absolute;
    width: 100%;
    height: 100%;
    text-align: center;
}
.inner img {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    max-height: 124px;
    max-width: 124px;
    padding: 10px;
}
.inner p {
    font-weight: 700;
    font-size: 1.2em;
    position: relative;
    top: 50%;
    padding: 10px;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    transform: translateY(-50%);
}
.back {
    display: none;
}

到目前为止我的 JavaScript/jQuery:
$(".outer").click(function() {
    $(this).find(".front").fadeOut();
    $(this).find(".back").fadeIn();
});

A JSFiddle of my predicament can be found here

最佳答案

您应该在元素 .back 淡出后淡入元素 .front

您可以通过在 .fadeIn() 回调中调用 .fadeOut() 来做到这一点:

Updated Example

$(".outer").click(function () {
    var self = this;
    $(this).find(".front").fadeOut(function () {
        $(self).find(".back").fadeIn();
    });
});

关于javascript - 成功使用fadeIn() 和fadeOut(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29036365/

10-11 00:12