jQuery / CSS动画div宽度从左到右

时间:2014-01-09 10:01:40

标签: javascript jquery css css3

我正在尝试使用jQuery为div设置动画,背景图片的宽度从左到右逐渐减小,同时绝对定位。

我需要使用IE8与IE8兼容,因此使用jQuery。

这是一个基本的JSFiddle演示链接,它与我到目前为止的内容,但它从右到左动画:

JSFiddle link

jQuery(document).ready(function($){
    $(document).on('click', '.splat', function(e){
        $(this).animate({width:"0px"},800);
    });
});

.splat {
    width: 400px;
    height: 400px;
    background: blue;
    position: absolute;
    top: 100px;
    left: 100px;
}

<div class="splat"><!-- --></div>

我需要朝着不同的方向前进,如下图所示:

example of what I want to achieve

希望有人能指出我正确的方向(没有双关语!)。提前谢谢。

5 个答案:

答案 0 :(得分:5)

您可以使用包装器并使用right:0定位子div。

See this demo

答案 1 :(得分:1)

如果我能理解你的问题,解决方案就是左右替换:)

http://jsfiddle.net/V4XCb/6/

.splat {
    width: 400px;
    height: 400px;
    background: blue;
    position: absolute;
    top: 100px;
    right: 100px;
}

答案 2 :(得分:1)

你可以这样:

<div class="box">
    <div class="splat"></div>
</div>

.box{
   width:200px;
   height: 200px;
}
.splat {
    height: 200px;
    width: 100%;
    background: blue;
    float: right;
}

答案 3 :(得分:1)

如果你可以用一个相对定位元素的包装器包裹你的elem并执行以下操作:

.splatWrapper {
    width: 400px;
    height: 400px;
    background: green;
    position: relative; //<-----needed
    top: 100px;  //<------------needed
    left: 100px; //<------------needed
 }
 .splat{
    width: 400px;
    height: 400px;
    background: blue;
    position: absolute;
    top: 0;     //<----------needed
    right: 0;   //<----------needed
 }

Try this fiddle

答案 4 :(得分:0)

您可以在Jquery中使用Scale Effect:

jQuery(document).ready(function($){
    $(document).on('click', '.splat1', function(e){
        $(this).hide("scale");
    });    
});

小提琴:http://jsfiddle.net/V4XCb/14/