2011-12-13 37 views
7

hello im bằng cách sử dụng mã này để tải nội dung từ một tập tin php.làm thế nào để animate jquery tải()

$(document).ready(function(){ 
      setInterval(function(){ 
           $('.live-stream ul').each(function(){ 
            $(this).load('tx.php'); 
         }); 
       }, 1000); 

     }); 

hoạt động này đúng nhưng tôi muốn tập lệnh thành fadeTrong "li" khi thêm bản ghi mới, bất kỳ ai?

điều tôi muốn làm là thứ gì đó giống như nguồn cấp dữ liệu hành động người dùng trực tiếp của facebook ở trên cùng bên phải của trang chủ facebook

+0

Bạn có thể sử dụng 'display: none' hoặc' opacity: 0' trong CSS và thực hiện một hoạt ảnh jQuery thông thường. – FakeRainBrigand

Trả lời

0

bạn đã thử cái này chưa?

$(document).ready(function(){ 
    setInterval(function(){ 
     $('.live-stream ul').each(function(){ 
      $(this).load('tx.php').fadeIn('1000'); 
     }); 
    }, 1000); 
}); 

hmmm, những gì về vấn đề này một

$(function(){ 
//Fade in all objects. 
var wrapper = $("live-stream ul"); 
$(wrapper).hide(); 

function fadeInAll(elem, fadeInTime, timeBetween) 
{ 
    for(i=0; i<elem.size(); i++) 
    { 
     $(elem[i]).delay(i*(timeBetween+fadeInTime)).fadeIn(fadeInTime);  
    } 
} 

fadeInAll($(wrapper), 1000, 500); 

}); 
+0

có vẫn không có gì tương tự xảy ra –

+0

hmm, tôi đã thử mã thứ 2 của mình, có tác dụng đối với tôi, nhưng tôi không biết nếu công việc đó quá cho ya –

1

gì nếu bạn gọi phương thức fadeIn

$(this).load('tx.php').fadeIn(400); 
+0

không có gì thay đổi –

2

Hãy thử một cái gì đó như thế này:

$(document).ready(function(){ 
    setInterval(function(){ 
     $('.live-stream ul').each(function(){ 
      $(this).hide().load('tx.php').fadeIn('500'); 
     }); 
    }, 1000); 

}); 

Lưu ý việc sử dụng fadeIn()hide() ... Bạn không cần ẩn nếu bạn đã ẩn số <li>.

+0

tôi đã thử điều này nhưng toàn bộ li đang nhấp nháy mỗi 1 giây –

+0

Đó là vì bạn đã sử dụng bộ chọn '.live-steam ul'. Bạn đang chọn từng li và thực hiện cùng một lúc. Bạn đang tìm kiếm một hiệu ứng khác? – sirmdawg

1

gọi handler khi tải

$(document).ready(function(){ 
    setInterval(function(){ 
     $('.live-stream ul').each(function(){ 
       $(this).load('tx.php', function(){ 
         $('li').fadeIn("normal"); 
          }); 
       }); 
     }, 1000); 

    }); 
+0

không hoạt động: /. –

0

$ (này) được hiển thị trước khi .fadeIn ("1000") sẽ được thực hiện. Trước tiên, bạn phải che giấu thành phần được chọn, tải các nội dung và sau đó fadeIn, như thế này:

$(document).ready(function(){ 
    setInterval(function(){ 
     $('.live-stream ul').each(function(){ 
      $(this).hide().load('tx.php').fadeIn("1000"); 
     }); 
    }, 1000); 

}); 

Hoặc ẩn những yếu tố với css:

display: none; 

EDIT: nên được một cái gì đó như thế này, nhưng nó không được kiểm tra ...

$(document).ready(function(){ 
    setInterval(function(){ 
     var streamListElement = $(document.createElement("li")).load('tx.php').hide(); 
     $('.live-stream ul').append(streamListElement).find(":hidden").fadeIn("3000"); 
    }, 1000); 
}); 
+0

khi tôi làm điều này tất cả các li đang nhấp nháy mỗi 1 giây –

+0

@Ronnie Chester Lynwood Thats vì setInterval() của bạn. Bạn gọi hàm này mỗi giây;) Chính xác bạn muốn làm gì? –

+0

im cố gắng làm một cái gì đó giống như thức ăn hành động người dùng trực tiếp của facebook mà trên đầu trang của facebook nhà –

0

sử dụng callback nhưng ẩn li sử dụng CSS display: none; fadeIn nên làm việc sau đó.

$(document).ready(function(){ 
    setInterval(function(){ 
     $('.live-stream ul').each(function(){ 
       $(this).load('tx.php', function(){ 
         $(this).find('li').fadeIn(); 
          }); 
       }); 
     }, 1000); 

    }); 
+0

là có cách nào để sử dụng setInterval cho chỉ li không phải toàn bộ ul? –

9

Bạn phải ẩn thông tin trước tiên.

$(this).hide().load("tx.php").fadeIn('500'); 
+0

tuyệt, công trình này hoàn hảo –

0

Tôi không nghĩ bạn có thể sử dụng hoạt ảnh trực tiếp trên tải(). Nhưng đây là mẹo tôi đã sử dụng:

$("#id").animate({opacity: 0},1000); 
$("#id").load(url); 
$("#id").animate({opacity: 1},1000); 

Phần tử không hiển thị, chỉ trở nên trong suốt. Nó trông giống nhau.

Các vấn đề liên quan