2012-07-09 44 views
6

Tôi đang làm việc với một div duy nhất có hình ảnh bên trong. Tôi cần hình động để cuộn từ phải sang trái của trang và sau đó quay trở lại bên phải và tiếp tục lặp lại. Tôi đã xem qua nhiều bài viết ở đây nhưng không thể làm cho tập lệnh hoạt động đúng.Cách lặp lại .animate JQuery

'$(document).ready(function(){ 
    function loop() { 

     $('#clouds').animate({left: '+=1400',},50000, 'linear', function(){ 
      loop(); 
     }); 

HTML

< div id="clouds">< img border="0" alt="animated clouds" src="/images/clouds.png" />< /div> 

CSS

#clouds { 
    position:absolute; 
    z-index:500; 
    right:0px; 
    top:10px; 
} 
+2

là ''' ở đầu ý định jQuery của bạn? – SomeKittens

+0

Không phải vậy. Tôi đang làm việc trên một hệ thống quản lý nội dung không chính xác là kẹo mắt. Tuy nhiên, nếu không có thêm 'nó vẫn không hoạt động đúng. – ac12

Trả lời

16

Hãy thử điều này:

JSFiddlehttp://jsfiddle.net/2YqH2/

Bạn đang không di chuyển những đám mây trở về phía bên phải. Bên trong hàm vòng lặp, tôi đã thêm

$('#clouds').css({right:0}); 

và vòng lặp sẽ tiếp tục từ đó. Tôi cũng đã thay đổi hoạt ảnh của bạn để tạo hiệu ứng cho thuộc tính "đúng" kể từ khi bạn nói rằng bạn muốn những đám mây di chuyển từ phải sang trái.

Ngoài ra, javascript của bạn không được định dạng đúng. Hãy chắc chắn rằng bạn nhận được những đóng ngoặc và dấu ngoặc đơn! Đây là javascript cố định.

$(document).ready(function() { 
    function loop() { 
     $('#clouds').css({right:0}); 
     $('#clouds').animate ({ 
      right: '+=1400', 
     }, 5000, 'linear', function() { 
      loop(); 
     }); 
    } 
    loop(); 
}); 
+0

Tôi đánh giá cao điều này thật đáng yêu! Tôi đang thực tập và đã đến stackoverflow cho nhiều câu hỏi thường được trả lời. Tôi đã không mong đợi thời gian phản ứng tuyệt vời như vậy và lòng tốt với một noob như bản thân mình. Một câu hỏi cuối cùng liên quan đến tôi đã đọc rằng 'tuyến tính' cắt giảm chuyển động choppy nhưng cũng có cách khác không? Tôi đã đạt đến mức 50000 nhưng vẫn còn thô. – ac12

+0

Nếu bạn có thể đăng một ví dụ với nhiều div cũng sẽ rất tuyệt. Cảm ơn trước thời gian tôi rất cảm kích! – ac12

0

JAVASCRIPT:

$(document).ready(function() { 

    $('#clouds').click(function() { 
loop();  
    }); 

function loop(){ 
    alert('a'); 
     $('#clouds').animate({ 
      opacity: 0.25, 
      left: '+=1400', 
      height: 'toggle' 
     }, 5000, 'linear', function() { 
      loop(); 
     }); 

} 

}); 

HTML:

<div id="clouds"><img border="0" alt="animated clouds" src="../img/image.png" /></div> 

lỗi của bạn là bạn không gọi vòng lặp chức năng không bao giờ. xem cách it works, bạn có thể xóa alert('a') vì đó chỉ là cờ để biết chu trình bắt đầu lại. bây giờ bạn cần phải thực hiện chuyển động ngược lại (như đặt lại div, để bắt đầu chu kỳ chuyển động).

+0

Tôi đang làm việc trên một hệ thống quản lý nội dung tại nơi làm việc và JQuery được nhập. Tôi đã thử kịch bản trên và vẫn không có chuyển động. Tôi cũng đã thử gọi lại chức năng này khi // Hoạt ảnh hoàn tất nhưng không có may mắn. – ac12

+0

Bạn có thể sử dụng firebug và cho chúng tôi biết thông báo lỗi javascript không? – jcho360

+0

Chúng không có lỗi. – ac12