0

MySQL テーブルに新しい行があるとすぐに更新されるフィード サイトがあります。これは私が持っているコードです:

    var cacheData;
var data = $('#refresh').html();
var auto_refresh = setInterval(
function ()
{
    $.ajax({
        url: 'index.php',
        type: 'POST',
        data: data,
        dataType: 'html',
        success: function(data) {
            if (data !== cacheData){
                //data has changed (or it's the first call), save new cache data and update div
                cacheData = data;

                $('#refresh').fadeOut("fast");
                $('#refresh').load('index.php?_=' +Math.random()+' #refresh');
                $('#refresh').fadeIn("slow");
            }           
        }
    })
}, 1000);

現時点では、完全にフェードアウトしてから、新しい投稿とともにフェードインします。FaceBook のように、他のすべての結果を下にスライドさせてから、新しい結果をフェードインする方法はありますか? 私が試してみました

    $('#refresh').animate({top:$('#refresh').height(data); - $('#refresh').height(cacheDate);},"slow");
$('#refresh').load('index.php?_=' +Math.random()+' #refresh');
$('#refresh').fadeIn("slow");

それはそれを行う方法ですか?新しいポストの高さで分割を押し下げてからフェードインしようとしましたが、うまくいきませんでした。なぜ/何をしなければならないか誰でもわかりますか?

ありがとう

4

1 に答える 1

0

新しい div 要素を作成して非表示にし、親コンテナーの前に追加して、slideDown()その効果に使用します。また、サーバーから新しい投稿のみを送り返します (タイムスタンプを比較してください)。

于 2013-04-16T08:58:48.043 に答える