2012-03-31 21 views
6

Tôi đang sử dụng spin.js (http://fgnass.github.com/spin.js/) trong khi hình ảnh có chiều rộng/chiều rộng đầy đủ lớn tải. Vấn đề là tôi gặp rắc rối khi dừng máy quay. Phương thức stop() dường như không hoạt động. Có những gì tôi đã có:Dừng Spinner.js

$(document).ready(function($) { 
    var img = new Image(); 
    img.src = $('#top-bg').css('background-image').replace(/url\(|\)/g, ''); 

    img.onload = function(){ 
     $("#top-bg").spinner.stop(); 
     $(".top-bar").delay(1500).fadeIn(5000); 
     $("#arrow, #arrowrt, #top-icons").delay(5000).fadeIn(5000); 
    }; 
}); 

Tôi cũng đã cố gắng

.spin(false) 

.data('spinner').stop() 

Đây là các thiết lập spinner:

$(document).ready(function($) { 
    var opts = { 
    lines: 9, // The number of lines to draw 
    length: 11, // The length of each line 
    width: 4, // The line thickness 
    radius: 10, // The radius of the inner circle 
    rotate: 0, // The rotation offset 
    color: '#fff', // #rgb or #rrggbb 
    speed: 0.9, // Rounds per second 
    trail: 54, // Afterglow percentage 
    shadow: false, // Whether to render a shadow 
    hwaccel: false, // Whether to use hardware acceleration 
    className: 'spinner', // The CSS class to assign to the spinner 
    zIndex: 2e9, // The z-index (defaults to 2000000000) 
    top: 'auto', // Top position relative to parent in px 
    left: 'auto' // Left position relative to parent in px 
    }; 
    var target = document.getElementById('top-bg'); 
    var spinner = new Spinner(opts).spin(target); 
}); 
+0

bạn có thể vui lòng cho chúng tôi biết mã mà thiết lập up spinner? – Niko

+0

Tôi đã thêm cài đặt spinner, nếu đó là ý của bạn. – Connor

+0

Đó là ý tôi, cảm ơn! – Niko

Trả lời

19

Bạn cần phải lưu trữ spinner instance ở đâu đó - theo cách tha t bạn có thể truy cập vào nó khi bạn cần nó để ngăn chặn sự quay:

var spinner = new Spinner(opts).spin(target); 
$(target).data('spinner', spinner); 

Và bây giờ bạn có thể để ngăn chặn nó như thế này:

$('#top-bg').data('spinner').stop(); 
+0

Hoạt động hoàn hảo, cảm ơn. – Connor

+0

Chỉ cần thử nghiệm trong Opera, mặc dù, và nó không hoạt động ... bất kỳ ý tưởng? – Connor

+0

Xin lỗi, không có ý tưởng .. bất kỳ thông báo lỗi nào? – Niko

6

Bạn có thể ngừng spinner mà không dụ:

$(target).spin(false); 
+0

Cảm ơn! Tôi thấy điều này dễ làm hơn. – duyn9uyen

0

Hủy bỏ tất cả các DOM của containter, ví dụ:

<style type="text/css">.loader{ display: none; }</style> 
<div> 
    <span class="loader"></span> 
    <span>Foo</span> 
</div> 

Nếu cần áp dụng Sping gắn nó trong

$('.loader').show().spin(); 

Và phá hủy:

$('.loader').hide().empty(); 

Hãy nhớ rằng, jQuery.empty() automaticaly loại bỏ tất cả DOM của đối tượng trước khi tiêu diệt.

5

Điều này dường như làm việc trên các trình duyệt và sử dụng mã xuống:

$(".spinner").remove(); 
+0

Đây là điều duy nhất làm việc cho tôi. Cảm ơn bạn. – Marcus