0

我正在尝试从中心为 div 标签设置动画。最初我希望 div 标签不可见。当用户点击链接时,这个 div 标签应该从它的中心开始动画。如何使用 jquery 实现这一点。这是我当前的代码。

<a href="#" class="linkone">link one</a><br><br><br><br>
<section class="one">one</section>

这是CSS

.one {
        margin: 0 auto;
        width: 200px;
        height: 200px;
        border: 1px solid red;
        background: lightblue;
    }

这是我的jQuery

$('a').on('click', function (e) {
    e.preventDefault();
    var w = 200; //$('.one').outerWidth();
    var h = 200; //$('.one').outerHeight();
    var x = $('.one').width() / 2;
    var y = $('.one').height() / 2;
    var startW = h - y/2;
    var startH = w - x/2;
    var endTop = y - h/2;
    var endLeft = x - w/2;

    $('.one').animate({
        opacity: 1,
        width: (w+200) + 'px',
        height: (h+200) + 'px',
        top: endTop+'px',
        left: endLeft+'px'
    }, 1000);

    console.log(endLeft);
});
4

1 回答 1

2

像这样的东西:http: //jsfiddle.net/TJNTq/

$('.linkone').on('click', function (e) {
    e.preventDefault();
    var w = 200; //$('.one').outerWidth();
    var h = 200; //$('.one').outerHeight();
    var x = $('.one').width() / 2;
    var y = $('.one').height() / 2;
    var startW = h - y/2;
    var startH = w - x/2;
    var endTop = y - h/2;
    var endLeft = x - w/2;

    $('.one').show().animate({
        opacity: 1,
        width: (w+200) + 'px',
        height: (h+200) + 'px',
        marginTop: 0 + 'px'
    }, 1000);

    console.log(endLeft);
});

请注意,您的 top 和 left 动画没有做任何事情,因为.onediv 没有绝对或相对定位。

于 2012-09-11T15:06:35.303 回答