2014-01-07 29 views

回答

3

你真的需要一個庫,它並不難做到

$(document).ready(function (e) { 
    var startAngle = 0; 
    var unit = 215; 

    var animate = function() { 
     var rad = startAngle * (Math.PI/180); 
     $('.circle').css({ 
      left: 250 + Math.cos(rad) * unit + 'px', 
      top: unit * (1 - Math.sin(rad)) + 'px' 
     }); 
     startAngle--; 
    } 
    var timer = setInterval(animate, 10); 
}); 

FIDDLE

這裏是一個沒有一個循環,在相同的地方停止等。

$(document).ready(function (e) { 
    var startAngle = 180; 
    var unit = 215; 

    var animate = function() { 
     if (startAngle > -180) { 
      var rad = startAngle * (Math.PI/180); 
      $('.circle').css({ 
       left: 250 + Math.cos(rad) * unit + 'px', 
       top: unit * (1 - Math.sin(rad)) + 'px' 
      }); 
      startAngle--; 
      setTimeout(animate, 10); 
     } 
    } 

    $('.circle').on('click', function() { 
     startAngle = 180; 
     animate(); 
    }); 

}); 

FIDDLE

+1

+1,但在圈內多次點擊,使得它運行得更快:對可能這是個好http://jsfiddle.net/yashhy/t9Qnu/1/ – yashhy

0

請看看這些鏈接:

  • CSS Technique
  • #1回答:Answer 1 || Answer 2
  • 的jsfiddle:Fiddle 1

    var t = 0; 
    
    function moveit() { 
        t += 0.05; 
    
        var r = 100; 
        var xcenter = 100; 
        var ycenter = 100; 
        var newLeft = Math.floor(xcenter + (r * Math.cos(t))); 
        var newTop = Math.floor(ycenter + (r * Math.sin(t))); 
        $('#friends').animate({ 
        top: newTop, 
        left: newLeft, 
        }, 1, function() { 
        moveit(); 
        }); 
    } 
    
    $(document).ready(function() { 
        moveit(); 
    }); 
    
相關問題