ติดตั้งมอด Back to Top ในบอร์ด SMF ต้องการให้ขึ้นสุดหน้าเลย แก้ไขโค้ดตรงไหน อย่างไร
สาเหตุที่กดปุ่ม BACK TO TOP แล้วหน้าเว็บเลื่อนขึ้นไปหยุดอยู่แค่บริเวณหัวข้อกระทู้ (ไม่ขึ้นไปบนสุดของหน้าเว็บ) เกิดจากตัวมอด (Mod) หรือเทมเพลตตั้งค่าจุดอ้างอิง (#top หรือตำแหน่ง scrollTop) ไว้ที่ส่วนเนื้อหาหลัก (main_content_section หรือ <a id="top">) แทนที่จะเป็นจุดบนสุดของหน้า (0 หรือ body)
คุณสามารถแก้ไขได้ 2 วิธีหลักๆ ดังนี้ครับ
วิธีที่ 1: แก้ไขในไฟล์เทมเพลต index.template.php (แนะนำและตรงจุดที่สุด)
มอด Back to Top ของ SMF ส่วนใหญ่จะทำงานร่วมกับแท็ก <a id="top">[/url] หรือ <div id="top"> ในไฟล์ธีมที่ใช้งานอยู่
1. เข้าไปที่โฟลเดอร์ธีมที่ใช้งานอยู่ผ่าน FTP หรือ File Manager ของโฮสต์:
Themes/ชื่อธีมของคุณ/index.template.php (หากไม่มีให้ดูที่ Themes/default/index.template.php)
2. เปิดไฟล์ index.template.php และค้นหาคำว่า:html
id="top"
ใช้โค้ดอย่างระมัดระวัง
(มักจะอยู่แถวๆ <div id="main_content_section"><a id="top">[/url] ซึ่งเป็นจุดเดียวกับที่ลูกศรสีแดงในภาพชี้)
3. ย้ายโค้ด <a id="top">[/url] ออกจากจุดเดิม แล้วนำไปวางไว้ บรรทัดถัดจาก <body> ทันที เพื่อให้เป็นจุดบนสุดของหน้าเว็บ:html
<body>
<a id="top">[/url]
ใช้โค้ดอย่างระมัดระวัง
4. บันทึกไฟล์แล้วลองรีเฟรชหน้าเว็บ (กด Ctrl + F5) เพื่อทดสอบ
วิธีที่ 2: แก้ไขไฟล์ JavaScript ของตัวมอด (กรณีมอดใช้คำสั่ง Scroll แบบกำหนดพิกัด/อ้างอิง)
หากย้าย id="top" แล้วยังไม่ขึ้นสุด แสดงว่ามอดใช้ JavaScript/jQuery สั่งเลื่อนไปยังอิลิเมนต์เฉพาะ
1. ค้นหาไฟล์ .js ของมอดในโฟลเดอร์ Themes/default/scripts/ (เช่น backtotop.js, scrolltop.js หรือเปิดดูซอร์สโค้ดหน้าเว็บแล้วค้นหาคำว่า BACK TO TOP)
2. มองหาคำสั่งเกี่ยวกับการเลื่อนหน้าจอ เช่น:javascript
$('html, body').animate({
scrollTop: $("#main_content_section").offset().top // หรืออ้างอิง id อื่นๆ
}, 800);
ใช้โค้ดอย่างระมัดระวัง
3. เปลี่ยนค่าปลายทางให้เป็น 0 เพื่อให้เลื่อนขึ้นไปบนสุดของหน้าจอเสมอ:javascript
$('html, body').animate({
scrollTop: 0
}, 800);
ใช้โค้ดอย่างระมัดระวัง
(หรือหากเป็นคำสั่งแบบ Pure JS เช่น window.scrollTo(...) ให้เปลี่ยนเป็น window.scrollTo({ top: 0, behavior: 'smooth' })

คำแนะนำเพิ่มเติม: หากใช้งานธีมปรับแต่ง (Custom Theme) ที่ไม่ใช่ธีม Default ของ SMF เมื่อแก้ไขไฟล์แล้วอย่าลืม ล้างแคช (Clear Cache) ในหน้าผู้ดูแลระบบของ SMF (ผู้ดูแล > การบำรุงรักษา > ล้างแคช) เพื่อให้โค้ดใหม่ทำงานทันทีครับ