4

したがって、AJAX の長いポーリングの最後の部分では、出力データを div に入れて下にスライドさせようとしていますが、下にスライドするのは 1 回だけです。毎回divを追加しますが、私が何をしても、アニメーションには一度しか追加されません。私はこれを何日も機能させようとしてきました、助けてください。

これが私のコード全体です。

//JavaID
var var_IDdatacheck  = <?php echo $javaid; ?>;
var var_IDcheck = parseInt(var_IDdatacheck);

//datacheck
var var_numdatacheck  = <?php echo $datacheck; ?>;
var var_numcheck = parseInt(var_numdatacheck);
function activitycheck() {
    $.ajax({
        type: 'POST',
        url: 'feedupdate.php',
        data: {function: '3test', datacheck: var_numcheck, javaid: var_IDcheck},
        success: function (check) {
            console.log(check);
            var verify = JSON.parse(check);

            if (var_IDcheck < verify['id']) {
                var_IDcheck = verify['id'];
                for (var i=0;i<var_IDcheck;i++){
                    $('#datacheck').prepend(verify[i]).slideDown('slow');
                }
            }
        },
        error: function(check) {
            console.log(check);
        }
    });
} 

$(document).ready(function()  {
    setInterval('activitycheck()',5000);
}); // document ready
4

3 に答える 3

0

たぶん、別のアプローチが適切でしょう:

<div id="parent_box">
    <div></div>
</div>

<style type="text/css">
   div#parent_box {
       height: 0;
       overflow: hidden;
       transition: height 1s;
   }
</style>

<script type="text/javascript">
function slide_down(html) {
    $('div#parent_box > div').append(html);
    $('div#parent_box').css('height', $('div#parent_box > div').height());
}
</script>

私が間違っていなければ、呼び出すslide_down().append()新しいデータが生成され、親要素が子要素と同じ高さになるように強制されます。transtionこれをアニメーション化し、overflowアニメーション中に「漏れ」ないようにします。

.slideDown()目に見える要素はできないはずです。データを追加すると、アニメーションなしで単純にサイズが大きくなります。

于 2013-08-20T12:30:05.107 に答える