【问题标题】:jquery slice div animation (curtain style)jquery slice div 动画(窗帘样式)
【发布时间】:2013-05-25 00:16:16
【问题描述】:

其实我差不多完成了,只是还没想好最后一部分......

我想要的实际上是在我的 jsfiddle 动画中间发生的事情(见下文),我希望“Hi”位于中间并在 div 开始移动时切成两半。

我似乎无法正确定位初始位置。

这是我目前得到的:http://jsfiddle.net/WwwCn/

HTML

<div id="curtain1">
    <div><h1 style="color:#FFF">Hi</h1></div>
</div>
<div id="curtain2">
    <div><h1 style="color:#FFF">Hi</h1></div>
</div>

CSS

#curtain1, #curtain2 {
    background: #333;
    width:100%;
    height:100%;
    position:absolute;
    overflow:hidden;
}
#curtain1 div {
    position:relative;
    left: 50%;
    color:#eee;
    text-align:center;
}
#curtain2 div {
    position:relative;
    right: 50%;
    color:#eee;
    text-align:center;
}

jquery

$('#curtain1').delay(1000).animate({
    left: '-100%'
},4000);
$('#curtain2').delay(1000).animate({
    right: '-100%'
},4000);

有人知道怎么做吗?谢谢!

【问题讨论】:

    标签: jquery jquery-animate slice


    【解决方案1】:

    如果我理解您要做什么,您需要给窗帘 50% 的宽度并左右放置它们。

    #curtain1,#curtain2 { width:50%; }
    #curtain1 { left:0; }
    #curtain2 { right:0; }
    

    查看更新后的Fiddle

    【讨论】:

    • 谢谢,成功了!关于如何避免动画开始时出现水平滚动条,您有什么建议吗?我尝试将两个窗帘 div 包装成一个 100% 宽度和高度的 div,并且溢出:隐藏,但它似乎不起作用..
    • 添加位置:相对; (或固定的,或绝对的,取决于需要)到容器。由于窗帘是绝对定位的,因此它们不在文档流中,除非它们的父级被定位。
    【解决方案2】:

    摆脱overflow:hidden。它覆盖了 H 的左半部分。

    jsFiddle updated

    我还为您指定 left/right 的每个项目添加了一个 top 位置,因为如果您不同时指定 X 和 Y 值,Firefox 会出现崩溃的趋势。

    编辑

    通过使用#curtain1#curtain2 的类和适当的position 属性对其进行了一些清理。

    Second updated jsFiddle

    【讨论】:

    • 感谢您的建议,jsfiddle 似乎不起作用?也许它需要将窗帘 div 的宽度设置为 50%?
    • 哪个jsFiddle?我在 Chrome、Firefox 和 IE 上都进行了测试。我还刚刚更新了它们,在窗帘周围添加了一个带有overflow:hidden 的包装,以防止您在接受的帖子中提到的水平滚动条。
    • 嗯,我可能没有正确解释我想要达到的目标,这就是我想要的:jsfiddle.net/WwwCn/6
    • 哦,你只是想在中间开始嗨!我以为你想把它从左边移到中心,然后把它分开。我的错。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-02
    • 1970-01-01
    • 1970-01-01
    • 2019-07-16
    相关资源
    最近更新 更多