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);
});

.onedivが絶対的または相対的に配置されていないため、上と左のアニメーションは何もしていないことに注意してください。

于 2012-09-11T15:06:35.303 に答える