How to create circular animation with different objects using jQuery?

后端 未结 3 630
逝去的感伤
逝去的感伤 2021-02-10 08:45

How to create circular animation with different objects using jQuery. I have tried myself but the issue is that my scrip is not running smoothly.

I want this animate but

3条回答
  •  无人共我
    2021-02-10 09:43

    Using jQuery Animation: http://jsfiddle.net/eT7SD/6/

    Using mathand jQuery : http://jsfiddle.net/eT7SD/7/

    Using CSS3 Rotation (just for fun): http://jsfiddle.net/dMnKX/

    Just add a class 'box' to your animating divs like in the fiddle and use this js:

    $(document).ready(function(e) {
    
        var animate = function(){
    
            var boxes = $('.box');
    
            $.each(boxes, function(idx, val){
    
                var coords = $(boxes[idx+1]).position() || $(boxes[0]).position();
    
                $(val).animate({
    
                    "left" : coords.left,
                    "top" : coords.top
    
                }, 1500, function(){})   
    
            });
        }
    
        animate();
    
        var timer = setInterval(animate, 2000);  
    });
    

    EDIT:

    $(document).ready(function(e) {
        var angles = [90, 45, 315, 270, 225, 135];
        var unit = 215;
    
        var animate = function(){
    
            $.each($('.box'), function(idx, val){
    
                var rad = angles[idx] * (Math.PI / 180);
                $(val).css({
                    left: 550 + Math.cos(rad) * unit + 'px',
                    top: unit * (1 - Math.sin(rad))  + 'px'
                });
    
                angles[idx]--;
            });
    
        }
        var timer = setInterval(animate, 10);
    
    });
    

    You have to change the left, top, width, height properties of boxes, standardize them, set the correct unit (circle radius) and initial angles. But for a preview, i think this is what you want (just needs a little more work).

    Example: http://jsfiddle.net/eT7SD/7/

    Visual understanding of angles:

    circle angles

提交回复
热议问题