"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية الحد من نطاق التمرير لعنصر داخل عنصر الوالد الحجم ديناميكي؟

كيفية الحد من نطاق التمرير لعنصر داخل عنصر الوالد الحجم ديناميكي؟

نشرت في 2025-01-31
تصفح:106

How to Limit Scrolling Range of an Element Within a Dynamically-Sized Parent Element?

إمكانية الوصول. يتضمن أحد هذه السيناريو الحد من نطاق التمرير لعنصر داخل عنصر الوالدين ديناميكيًا.

المشكلة:

التمرير الرأسي للمستخدم ، مع الحفاظ على محاذاة مع شريط جانبي ثابت. ومع ذلك ، يمتد تمرير الخريطة إلى أجل غير مسمى ، ويتجاوز ارتفاع منفذ العرض ، ويمنع المستخدمين من الوصول إلى تذييل الصفحة.

الحل: الاستفادة من تقنيات CSS وتقنيات JavaScript.

أولاً ، نحدد حد ارتفاع CSS للخريطة Div باستخدام خاصية "Max-Height". هذا يحدد أقصى ارتفاع يمكن أن تصل إليه الخريطة ، مما يضمن أنه لا يمكن أن يتجاوز ارتفاع العنصر الأصل. &&S]}

التالي ، نستخدم JavaScript لتتبع موضع التمرير للمستخدم وضبط موضع الخريطة وفقًا لذلك. بدلاً من استخدام طريقة jQuery ".animate ()" ، فإننا نختار معالجة CSS المباشرة لأسباب الأداء. = $ (this) .scrolltop () ؛
if (scrollval> $ ("#sidebar"). Offset (). TOP) {

$ ("#map"). css ({{ Margintop: (Scrollval - $ ("#sidebar"). Offset (). TOP) "PX" }) ؛

} آخر {

$ ("#map"). css ({ Margintop: "0px" }) ؛

نطاق تمرير الخريطة داخل ارتفاع الشريط الجانبي. على سبيل المثال ، إذا كان عنصر الخريطة يحتوي على ارتفاع ثابت وتوسيع الشريط الجانبي ديناميكيًا ، فيمكننا تبسيط الحسابات.

scrollval = $ (this) .scrolltop () ؛
if (scrollval> $ (". header"). height ()) {

$ ("#map"). css ({{ الموقف: "ثابت" ، أعلى: "0px" }) ؛

} آخر {


$ ("#map"). css ({ الموقف: "ثابت" }) ؛

عندما يتجاوز موضع التمرير ارتفاع الرأس ، نصلح موضع الخريطة إلى أعلى منفذ العرض. يضمن هذا النهج أن يخطط الخريطة في العرض في الوقت المناسب ، بينما تبقى ضمن ارتفاع منفذ العرض.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3