Jquery 以中心内容设置div动画-从右到左逐渐显示顶部

Jquery 以中心内容设置div动画-从右到左逐渐显示顶部,jquery,css,twitter-bootstrap,Jquery,Css,Twitter Bootstrap,我正在尝试制作一个动画,其中一个div“改变了它的颜色”,其中的内容也改变了。 动画中的不同阶段如下所示。 您在图像中看到的div在视图中如下所示。我将类命名为row1,因为当我仅使用“row”时,我意识到引导程序可能会搞乱某些东西 <div class="row1 facebook"> <div class="logo"> <div class="image"></div> <label class=

我正在尝试制作一个动画,其中一个div“改变了它的颜色”,其中的内容也改变了。 动画中的不同阶段如下所示。 您在图像中看到的div在视图中如下所示。我将类命名为row1,因为当我仅使用“row”时,我意识到引导程序可能会搞乱某些东西

<div class="row1 facebook">
    <div class="logo">
        <div class="image"></div>
        <label class="text">facebook</label>
    </div>
</div>

脸谱网
我试着使用2个div,其中底部的一个是白色背景,顶部的一个是彩色的,一开始是0px,然后逐渐增加宽度,溢出-x:hidden,但是我遇到了一些问题,因为我试图保持内容的中心位置,以便在调整大小时内容不断移动


您需要设置主容器, 动画背景, 然后是标志

<div id="container">
     <div id="animated">
     </div>
     <div id="logo">
     </div>
</div>


像这样的东西怎么样:

HTML:

<div class="container">
    <div class="hover">
        <div>Facebook</div>
    </div>
    <div class="default">
        <div>Facebook</div>
    </div>
</div>
$(".container").on({
    "mouseenter" : function() {
        $(".default", this).stop().animate({
        width: "0%",
        }, 700, function() {
            $("div", this).hide();
        });
    },
    "mouseleave" : function() {
        $(".default div", this).show();
        $(".default", this).stop().animate({
        width: "100%",
        }, 700);
    }
});
.default.hover中的div应根据其父级大小进行定位,并将其位置属性设置为绝对值。这样,即使它们的父宽度正在更改,元素也将保持其位置

有关更多详细信息,请查看此处,您将看到我如何使用CSS和jQuery定义每个元素的大小及其位置。

演示:

解释:我使用jquery设置内部div的宽度并将其定位为绝对值。当只使用css移动它的父div时,这会导致它剪辑它的子元素

我添加了更多的动画,这不是你想要的,但我想这是值得的

代码:

Js

css


谢谢你的努力,但这不是我所需要的。请注意,在图像中,动画容器也有徽标和文本,但颜色不同。请为其他浏览器添加相关前缀。对于transition属性,现在transition仅适用于chrome或webkit浏览器。我现在正在查看您的解决方案,看起来很有希望,谢谢!第二个版本的小提琴是我需要的,非常感谢你的帮助和努力!
$('.main').width($('.out').width());
$(window).resize(function(){
    $('.main').width($('.out').width());
});
* {    padding: 0; margin: 0;}
.out {
    height: 180px;
    font-family: "Helvetica";
    font-size: 0;
    cursor:pointer;
    position: relative;
    overflow: hidden;
}

.bg, .top {
    font-size: 1rem;
    height: 180px;
    text-align: center;
    line-height: 170px;
}
.bg {
    background: radial-gradient(circle at center, #ffffff 0%,#ffffff 59%,#ededed 100%);
}

.top, .main {
    position: absolute;
    right: 0; top: 0; 
    overflow: hidden;
}
.top {
    width: 0;
    -webkit-transition: all .5s;
}
.out:hover .top {
    width: 100%;
}
.main {
    background-color: #f53f39;
    color:white;
}