UPDATE
การไปที่ด้านบนสุดของหน้าเว็บด้วยเอฟเฟกต์เลื่อนเป็นเรื่องง่ายขึ้นเล็กน้อยใน javascript ตอนนี้ด้วย:
https://developer.mozilla.org/en-US/docs/Web/API/Window/scroll
window.scroll({
top: 0,
left: 0,
behavior: 'smooth'
});
ข้อควรระวัง
เราได้ใช้สิ่งนี้ในโครงการล่าสุดของเรา แต่ฉันเพิ่งตรวจสอบ mozilla doc ทันทีในขณะที่อัปเดตคำตอบของฉันและฉันเชื่อว่ามันได้รับการปรับปรุง ตอนนี้วิธีการที่เป็นwindow.scroll(x-coord, y-coord)
และไม่ได้พูดถึงหรือแสดงตัวอย่างที่ใช้object
พารามิเตอร์ที่คุณสามารถตั้งค่าการbehavior
smooth
ฉันพยายามรหัสและยังคงทำงานใน Chrome และ Firefox และพารามิเตอร์วัตถุที่ยังคงอยู่ในสเปค
ดังนั้นควรใช้ด้วยความระมัดระวังหรือคุณสามารถใช้Polyfillนี้ได้ นอกเหนือจากการเลื่อนไปที่ด้านบนแล้ว polyfill นี้ยังจัดการกับวิธีการอื่น: window.scrollBy
, element.scrollIntoView
และอื่น ๆ
คำตอบเดิม ๆ
นี่คือjavascript
การดำเนินการวานิลลาของเรา มันมีง่ายบรรเทาผลกระทบเพื่อให้ผู้ใช้ไม่ได้รับตกใจหลังจากคลิกไปด้านบนปุ่ม
มันเล็กมากและเล็กลงเมื่อย่อขนาด ผู้ที่กำลังมองหาทางเลือกอื่นสำหรับวิธีการ jquery แต่ต้องการผลลัพธ์เดียวกันสามารถลองได้
JS
document.querySelector("#to-top").addEventListener("click", function(){
var toTopInterval = setInterval(function(){
var supportedScrollTop = document.body.scrollTop > 0 ? document.body : document.documentElement;
if (supportedScrollTop.scrollTop > 0) {
supportedScrollTop.scrollTop = supportedScrollTop.scrollTop - 50;
}
if (supportedScrollTop.scrollTop < 1) {
clearInterval(toTopInterval);
}
}, 10);
},false);
HTML
<button id="to-top">To Top</button>
ไชโย!