جعل إقامة عنصر تمرير "في الجزء السفلي" مع إضافة محتوى

StackOverflow https://stackoverflow.com/questions/249346

سؤال

وأنا بناء صفحة فائدة لتطبيق ويب أنني أعمل على. لدي أحد العناصر التي أريد استخدام بأنها "وحدة" من نوع ما.

وأحصل على إدخالات وحدة التحكم عن طريق المكالمات اياكس (باستخدام Ajax.PeriodicalUpdater النموذج ل).

والمشكلة أواجه هو أنه عندما أقوم بإدخال خطوط جديدة إلى الجزء السفلي من "وحدة التحكم"، شريط التمرير يبقى في الموقف المبدئي (لذلك أرى دائما خطوط أعلى، إلا أن انتقل يدويا لأسفل).

وكيف يمكنني جعل شريط التمرير تلقائيا البقاء في القاع؟

وأنا أستخدم النموذج لبضع المكتبات التي تتطلب ذلك في هذا المشروع، لذلك يفضل التمسك بهذا أو جافا سكريبت منتظم إن أمكن.

ومثلما ملاحظة، أنا بالفعل حاولت ذلك:

onComplete: function() { 
    $('console').scrollTop = $('console').scrollHeight;
}

وو<م> تقريبا يعمل، إلا أنه دائما "خطوة واحدة وراء"، وأنا لا يمكن أن نرى هذا البند الأخير.

هل كانت مفيدة؟

المحلول

new Ajax.PeriodicalUpdater(container, url, {
    onComplete: function() {
        (function() {
            container.scrollTop = container.scrollHeight;
        }).defer();
    }
});

نصائح أخرى

وهيه، أنا كان بناء بالضبط تقريبا نفس الشيء (وحدة اياكس) وكان القضايا مع بلدي فاضت DIV لا scolling على طول الطريق إلى أسفل.

وساعد المكدس تجاوز لي حل لها! نأمل أن تساعدك أيضا!

التمرير فاضت عناصر div مع جافا سكريبت

وتحرير: سؤالي تستخدم مسج، ولكن المشكلة ليست في إطار JS انها مع سمات CSS الذي تستخدمه. في الأساس تحتاج الحصول على Math.max (div.scrollHeight، div.clientHeight) لأن بعض المتصفحات هي عربات التي تجرها الدواب قليلا مع تلك الصفات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top