رفع مشکل فضای خالی بعد از رفرش صفحه
اگر سایتی دارید که عرض صفحه زیاد است قطعا زمانی که کاربر قصد رفرش کردن صفحه را دارد ممکن است این عملیات را از میانهی صفحه انجام دهد. در این زمان است که ممکن است بین بخشهای مختلف صفحه فضای خالی ایجاد شود و این تنها مشکل مرورگر و جاوااسکریپت است. یکی از مشکلهایی که سایتهای وردپرسی هم بیشتر از همه با آن درگیر هستند همین مشکل است. در این نوشته یک قطعه کد یک خطی چاره ساز مشکل شما خواهد شد.
رفع مشکل فضای خالی بعد از رفرش صفحه
خب همانطور که گفتیم این مشکل دقیقا زمانی رخ میدهد که مثلا کاربر در وسط صفحه است و در همان جا کلید F5 یا Reload را در مرورگر بزند؛ وقتی کاربر به سمت بالا میآید یک فضای خالی برای اون ایجاد میشود که این فضا در واقع تنها هنگام نمایش ایجاد میشود و آن فضا هیچ المانی نیست. یک نکتهی جالب اینکه اگر در همان زمان روی آن بخش کلیک راست کنید و گزینهی inspect elements را بزنید آن فضا از بین میرود. حالا راه حل رفع این مشکل این است که شما قطعه کد زیر را در بخش head صفحهی خود قرار دهید.
کد:
<script>window.scrollTo(0,0);</script>
در واقع کد بالا تنها این کار را انجام میدهد که در زمان لود صفحه اسکرول به بالاترین بخش منتقل شود و هیچ مشکل دیگری برای سایت شما ایجاد نخواهد کرد.
اگر روش بالا چاره ساز مشکل شما نشد و یا روش های بهتری برای حل این مشکل در اختیار دارید در بخش نظرات برای ما بنویسید.



















آیا وجود fixed header یا sticky عناصر بالای صفحه روی ایجاد این گپ تأثیر داره؟
بله، وجود header یا عناصر sticky میتواند باعث ایجاد فاصله شود، چون مرورگر هنگام رفرش موقعیت اسکرول را حفظ میکند و این عناصر ممکن است فضای اضافی ایجاد کنند.
این مشکل روی موبایل هم پیش میاد یا مخصوص دسکتاپ و اسکرول با ماوسه؟
این مشکل هم روی موبایل و هم روی دسکتاپ قابل مشاهده است، چون رفرش صفحه موقعیت اسکرول را حفظ میکند، صرفنظر از روش اسکرول کردن.
اگر کاربر به جای F5 از Hard Reload استفاده کنه، باز هم همین رفتار دیده میشه؟
در اکثر مرورگرها Hard Reload موقعیت اسکرول را بازنشانی میکند، بنابراین احتمال ایجاد فضای خالی کمتر است، اما بسته به مرورگر ممکن است تفاوت جزئی وجود داشته باشد.
آیا وجود اسکرول بینهایت یا تصاویر لِیزیلود شده میتونه این مشکل را تشدید کنه؟
بله، اسکرول بینهایت یا تصاویر لِیزیلود شده میتواند باعث تشدید فاصله بعد از رفرش شود، چون محتوای صفحه هنوز کامل لود نشده و موقعیت اسکرول دقیق محاسبه نمیشود.
این فضای خالی بعد از رفرش بیشتر در چه مرورگرهایی رخ میدهد و قابل بازتولید پایدار هست؟
این مشکل عمدتاً در مرورگرهای کروم و فایرفاکس قابل بازتولید است و معمولاً پایدار دیده میشود، به ویژه وقتی کاربر وسط صفحه باشد و اسکرول شده باشد.