jquery: can i animate the position:absolute to position:relative?

前端 未结 5 1370
时光说笑
时光说笑 2021-02-05 21:39

i have a bunch of images that are positioned absolutely, i want to be able to click a button and have them all animate to where they would normally be on the page if they had th

5条回答
  •  一整个雨季
    2021-02-05 22:16

    No, you cannot animate it directly but you can find out the end point and animate the position there. Something like this might work when animation to the static position:

    $('img.foo').each(function() {
    
        var el = $(this);
    
        // Make it static
        el.css({
            visibility: 'hidden', // Hide it so the position change isn't visible
            position: 'static'
        });
    
        // Get the static position
        var end = el.position();
    
        // Turn it back to absolute
        el.css({
            visibility: 'visible', // Show it
            position: 'absolute'
        }).animate({ // Animate to the static position
            top: end.top,
            left: end.left
        }, function() { // Make it static
            $(this).css('position', 'static');
        });
    });
    

    It's a bit hacky, but it should work.

提交回复
热议问题