مشکل استیک منو در پروژه

پرسیده شده
فعالیت 946 روز پیش
دیده شده 464 بار
1

در پروژه ای که انجام دادم مشکل منوی استیکی هنگام اسکرول وجود داره

با راهنمایی یکی از دوستان هم مشکل برطرف نشد

منوی استیکی در سایز sm فعال میشه

آیا کانفلیکتی با این قضیه وجود داره؟

فایل پیوست

علی شاهنوشی
علی شاهنوشی

6 مهر 00

1
حذف شده

فایل خدمت شما.
توی بخش html  و  css عبارت HERE رو جستجو کن. اونجا ها رو فقط تغییر دادم.

 

و برای درک تاثیر ارتفاع، ارتفاع body رو برگردون به حالت height: 100%

یه استایل border: 1px solid red بهش بده که محدوده اش برات مشخص باشه

 

و بعد اسکرول کن

 

میبینی که از همون جایی که بادی تموم میشه منوت هم اسکرول میشه و میره

فایل پیوست
Solved-ali.rar
1.05 MB

Mahdi Mohaqeq

توسط

Mahdi Mohaqeq

10 مهر 00

حذف شده
خیلی ممنونم? یک چیز جالب هم متوجه شدم وقتی کد رو با دبل کلیک توی کروم باز میکنم مشکل داره و منو اسکرول میشه ولی وقتی توی ویژوال استودیو بازش میکنم درست اجرا میشه این مورد به چه دلیل هست؟
علی شاهنوشی

10 مهر 00

حذف شده
کدی که من فرستادم رو؟ نمیدونم یه جایی از پروژت که توی فایل استایل اصلیت نیست انگار، تعریف کردی فقط توو مدیا کوئری های پایین این اتفاق استیکی رخ بده گمونم برا منم تووی حالت عرض کامل استیکی نیست و توی عرض های پایین استیکی میشه اینو یکم دقیق تر باید بررسیش کنی
Mahdi Mohaqeq

10 مهر 00

حذف شده
کدی که شما دادی درسته ولی کد خودم رو وقتی با کروم باز میکنم مشکل داره ولی وقتی با ویژوال استودیو باز میکنم مشکلی نداره...خیلی عجیبه! برای شما چنین چیزی پیش نیومده؟ اون بخش استیکی هم فقط توی سایز های کوچک اعمال میشه و از این لحاظ مشکلی نداره
علی شاهنوشی

10 مهر 00

حذف شده
شاید مشکل از render prefix ها باشه برای پوزیشن استیکیت از رندر پریفیکس sticky برای کروم استفاده کن شاید درست شد
Mahdi Mohaqeq

10 مهر 00

1
حذف شده

سلام

 

آقا چند تا مشکل هست توی کدت

اولا، چرا به تگ body ارتفاع دادی؟

تگ بادی رو نباید ارتفاع بدی تا خود به خود با افزایش حجم کامپوننت ها اون هم ارتفاع خودش رو افزایش بده.

یا لااقل اگه میخوای ارتفاع بدی باید min-height: 100% بدی

 

دوما، استیکی شدن نسبیه

یه مثال بارزش همین سایت 7 لرن
دیدی توی بخش سرفصل ها، مثلا سر فصل آموزش sass منوی aside سمت راست که اطلاعات کلی دوره و نام استاد رو نشون میده با اسکرول به پایین تا یه جایی sticky عمل میکنه بعدش رها میشه؟
خب دلیلش چیه؟
چون کانتینر اون منوی aside ارتفاعش زیاده، ولی محتوی نه.
به محتوی اون حالت استیکی میدن و نسبت به کانیتنرش حالت استیکی پیدا میکنه. زمانی که کانتینرش کل ارتفاعش اسکرول میشه و خارج میشه از محدودش اونم دیگه حالت استیکی نداره.

 

در مثال شما، چون میخوای اون منو کلا بالا قرار بگیره، باید کل اون div.container رو حالت استیکی کنی و نه .row درونش رو. 

چرا؟ با توضیحاتی که دادم چون شما همش میخوای اون بالا بچسبه باید المانت رو نسبت به سند یا همون body خودمون استیکی کنی. (البته من اینطور فهمیدم و اینطوریم جواب داده واسم)

 

پس 1. ارتفاع رو از بادی بگیر یا min-width بده

2. .container اون بخشی که میخوای استیکی بشه رو position : sticky بده

مشکل برطرف میشه.

 

سوم، منو ای که گفتی توی همه ی حالات sticky میشه و منوط به sm نیست

برای اینکار باید توی مدیا کوئری مربوط به sm عبارت position: sticky رو قرار بدی

 

موفق باشی

فایل پیوست

Mahdi Mohaqeq

توسط

Mahdi Mohaqeq

9 مهر 00

حذف شده
من ارتفاع رو صد در صد دادم و فکر نمیکنم ربطی به این موضوع داشته باشه به کانتینر منو هم پوزیشن استیکی دادم ولی مشکل برطرف نشد شما امتحان کردی که مشکل حل بشه؟ من برای همین فایل رو ضمیمه کردم لطفا اگر کسی میدونه جواب بده
علی شاهنوشی

10 مهر 00

1
حذف شده

من همین کار هایی ک گفتم رو انجام دادم و حل شد، شما هم انجام بده

فایل پیوست

Mahdi Mohaqeq

توسط

Mahdi Mohaqeq

10 مهر 00

0
حذف شده

لطفا فایلش رو ضمیمه کنید. من این کار ها رو کردم ولی درست نشد

ممنون میشم

فایل پیوست

علی شاهنوشی

توسط

علی شاهنوشی

10 مهر 00