شبيبة أو مسج - الحصول على مساحة للعرض من شعبة تمرير

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

سؤال

وأنا لديها حاليا لللتمرير شعبة أن يتم ملؤها بشكل حيوي.
لدي وظيفة أن يلتقط UpArrow وDownArrow الضغط على المفاتيح وتغيير الطبقات داخل شعبة الأم لديها طفل واحد مختار في وقت (أساسا هذا يقلد حدد الإدخال)

وهنا هو ما أريد القيام به: أحتاج مساحة شعبة في مواضيعها إلى تغيير (ذهاب أسفل أو لأعلى) لإظهار آخرها "مختارة" الأطفال، ولكن فقط إذا كان هذا الطفل ليس بالفعل في المنطقة للعرض الوالد.

ولذا أنا بحاجة للحصول على مساحة للعرض فيما يتعلق scrollHeight من شعبة الأم بطريقة أو بأخرى ... ولكن أنا لست متأكدا من كيفية القيام بذلك ...

وأيضا، وأنا لست متأكدا من كيفية تعيين مساحة للعرض من شعبة الأم.

وأي مساعدة سيكون موضع تقدير كبير!

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

المحلول

ودوه، ترد عليها

أولا أحصل على مساحة للعرض عبر

var viewableTop = $("#parentDiv").scrollTop;
var viewableBottom = $("#parentDiv").innerHeight() + $("#parentDiv").scrollTop;

ولذا فان أي شيء بين viewableTop وviewableBottom للعرض. ولكن في الحقيقة لا تحتاج إلى معرفة ذلك. وبدلا من ذلك عليك أن تعرف ما يلي

//getting child position within the parent
var childPos = $("#childDiv").position().top;
//getting difference between the childs top and parents viewable area
var yDiff = ($("#childDiv").position().top + $("#childDiv").outerHeight()) - $("#parentDiv").innerHeight()

ثم

//if upArrow and childPosition is above viewable area (that's why it goes negative)
if(event.keyCode == 38 && childPos < 0)
    $("#parentDiv").scrollTop += childPos;//add the negative number to the scrollTop
//if downArrow and the difference between childs top and parents viewable area is greater than the height of a childDiv
else if(event.keyCode == 40 && yDiff > $("#childDiv").outerHeight()-1)
    $("#parentDiv").scrollTop += yDiff;//add the difference to the parents scrollTop

نصائح أخرى

إذا كنت تستخدم مسج، يمكنك الحصول على موقف من قريب عنصر لانها الام وضعه باستخدام position(). يمكن تعيين شعبة للتمرير إلى النسبي لتحديد المواقع / مطلق لجعله في وضع.

وبالإضافة إلى ذلك، يمكنك تغيير scrollTop الملكية لتغيير موقف التمرير. أو مسج scrollTop(pos).

وكنت بحاجة للحصول على شعبة الداخلي scrollTop، إضافة ارتفاع شعبة الخارجي لذلك والتي من شأنها أن تعطيك أبعاد مواضيعها

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