Avatar ·

التمرير لأعلى الصفحة باستخدام JavaScript: حل بسيط وموثوق

مرحبًا بالجميع! أنا مبتدئ في JavaScript ولا أستطيع فهم التمرير لأعلى الصفحة. في موقعي، هناك صفحة طويلة تحتوي على محتوى، وأريد إنشاء زر «لأعلى» ليتمكن المستخدمون من العودة بسرعة إلى البداية. جربت استخدام `window.scrollTo(0, 0)` — يبدو أنه يعمل، لكنه مفاجئ بدون حركة. أريد تمريرًا سلسًا. حاولت استخدام `window.scrollBy()`، لكنني تشوشت في المنطق. كما جربت الطريقة القديمة `window.scrollTo({ top: 0, behavior: 'smooth' })`، لكنها لا تعمل في بعض المتصفحات، خاصة في الإصدارات القديمة من Safari. إليك الكود الحالي الذي كتبته:
function scrollToTop() {
  window.scrollTo(0, 0);
}
الزر يعمل، لكنه متقطع. هل يمكنك إرشادي إلى كيفية عمل تمرير سلس يعمل في جميع المتصفحات الحديثة؟ وهل يمكن إضافة حركة مع تغيير السرعة — بحيث تكون سريعة في البداية ثم تبطئ؟ سأكون ممتنًا لمثال مع شرح. شكرًا! ملاحظة: لا تقترح jQuery — أريد حلاً خالصًا.