2012-04-29 9 views
0
function run_battle() { 

if(battlenow.length>0) { 
var div = document.getElementById('show_battle'); 
    $("#show_battle").animate({ scrollTop: $("#show_battle").prop("scrollHeight") -  $('#show_battle').height() }, 100); 
var attempt = battlenow.shift(); 
div.innerHTML += attempt; 
    $("#show_battle").animate({ scrollTop: $("#show_battle").prop("scrollHeight") - $('#show_battle').height() }, 100); 
setTimeout("run_battle()",800); 
    } 
} 

これまでの説明はこれまでのものです。それはfirefoxで素晴らしい作品です。しかし、Chromeではまったく動作しません。私はJquery 1.7.1を使用しています。そのため、私は.attrの代わりに.propを使用しています。Jquery FirefoxとChromeの一番下までスクロール

バットレーン配列はこのようなものです。

battlenow.push('Alan hit Joe<br><br>'); 
battlenow.push('Joe fainted<br><br>Battle Over'); 

これが役立つ場合は。

ありがとうございます。

答えて

0

私が使用しているコードは、すべてのブラウザで動作し、特定の要素にスクロールします。このコードは画面上の要素を取得するために最小量をスクロールします。 WebKitのブラウザのチェックに注意してください。

などと呼ば
(function($) { 

    $.fn.scrollMinimal = function() { 

    var cTop = this.offset().top; 
    var cHeight = this.outerHeight(true); 
    var windowTop = $(window).scrollTop(); 
    var visibleHeight = $(window).height(); 

    if (cTop < windowTop) { 
     $(jQuery.browser.webkit ? "body": "html") 
     .animate({'scrollTop': cTop}, 'slow', 'swing'); 
    } else if (cTop + cHeight > windowTop + visibleHeight) { 
     $(jQuery.browser.webkit ? "body": "html") 
     .animate({'scrollTop': cTop - visibleHeight + cHeight}, 'slow', 'swing'); 
    } 
    }; 

}(jQuery)); 

$('#actions').scrollMinimal(); 
+0

私はすでにそれを試してみました。私の "show_battle" divは別のdivの中にあります。そのコードを使用すると、親のdivがスクロールされ、必要なものはスクロールされません。 – AlanPHP

+0

私はdivの中のdivである最後のメッセージにスクロールするためにチャットウィンドウにこれを使用しているので、間違いなく動作します。私はあなたが見ているものを理解していないと思います。 divの一番下に移動したい場合は、対象のdivの直後にプレースホルダdivを作成し、代わりにプレースホルダdivにスクロールしてください。 – Bill

+0

まだChromeでは動作しません。 – AlanPHP

関連する問題