2010-08-02 37 views
18

Tôi đang tạo một trang web và cho phép người dùng thay đổi các tùy chọn chế độ xem. Tôi sử dụng jQuery để làm mịn các hình động để thay đổi phông chữ. Nó làm mất toàn bộ trang và quay lại với phông chữ mới.Hoạt ảnh opacity jQuery

Hoạt ảnh mờ dần là tốt, nhưng khi nó mờ dần, không bị mờ dần. Nó chỉ bật lên, không có hình động.

jQuery có vấn đề nằm trong http://xsznix.my3gb.com/options.php.

Code tôi có cho đến nay là thế này:

$('#font-classic').click(function(){ 
    $(document.body).animate({opacity: '0%'},{duration: 1000, complete: function(){ 
     // font changing code here 
     $(document.body).animate({opacity: '100%'}, 1000); 
    }}); 
}); 

Trả lời

7

Tại sao không sử dụng jQuery 's built-in chức năng fadeInfadeOut?

$('#font-classic').click(function(){ 
    $('body').fadeOut('normal', function(){ 
     $('body').fadeIn(); 
    }}); 
}); 
+0

Tôi đoán tôi có thể, nhưng tôi thực sự không muốn làm lại khung của tôi một lần nữa ... vì tôi chỉ là lười biếng. – xsznix

+0

@xsznix, nó cũng sạch hơn nhiều. 'animate' có nghĩa là cho ** hoạt ảnh ** tùy chỉnh. –

+0

Tôi đoán bạn nói đúng, tôi sẽ làm điều đó. – xsznix

44

jQuery .animate() mất giá trị 0-1.

$(document.body).animate({opacity: 0}, 1000); 
$(document.body).animate({opacity: 1}, 1000); 

Tôi chắc chắn rằng .animate() phải gọi .parseFloat() (hoặc một cái gì đó) trên các giá trị bạn đang đi qua, mà sẽ làm cho bạn 0% vào 0 (đó là chính xác), nhưng 100% của bạn vào 100, đó sẽ là sai.

+7

@xsznix - FYI '.animate()' là "có nghĩa là" cho bất kỳ hoạt ảnh nào bạn muốn. Không có quy tắc về tùy chỉnh và không tùy chỉnh (bất kỳ điều gì có nghĩa là). Khi bạn gọi '.fadeOut()' nó là * trực tiếp * gọi '.animate()', vì vậy bạn chỉ là một bước trừu tượng từ nó. Sử dụng bất cứ điều gì bạn thích, và không bị ảnh hưởng bởi những người tạo nên các quy tắc tùy ý. : o) – user113716

+0

Tôi nhận được rằng ... chỉ .animate() sử dụng nhiều byte phụ. : P – xsznix

+0

.fadeIn()/fadeOut() cũng "sạch hơn" và do đó dễ bảo trì hơn nhiều. – xsznix

5

Bạn có thể sử dụng chức năng hay cái gì đó như thế này:

$(document.body).animate({ opacity: 1/2 }, 1000); 
Các vấn đề liên quan