当前位置: 首页 > news >正文

【四种JavaScript 实现页面底部回到顶部功能的实现方式】

JavaScript 实现页面底部回到顶部功能

以下是几种实现页面底部回到顶部功能的方法:

方法一:基础实现(点击按钮滚动到顶部)

<!DOCTYPE html>
<html>
<head><style>#backToTop {position: fixed;bottom: 20px;right: 20px;display: none;width: 50px;height: 50px;background-color: #333;color: white;text-align: center;line-height: 50px;border-radius: 50%;cursor: pointer;}</style>
</head>
<body><!-- 页面内容 --><div style="height: 2000px;">滚动测试内容...</div><!-- 回到顶部按钮 --><div id="backToTop"></div><script>const backToTopBtn = document.getElementById('backToTop');// 监听滚动事件window.addEventListener('scroll', function() {if (window.pageYOffset > 300) { // 滚动超过300px显示按钮backToTopBtn.style.display = 'block';} else {backToTopBtn.style.display = 'none';}});// 点击回到顶部backToTopBtn.addEventListener('click', function() {window.scrollTo({top: 0,behavior: 'smooth' // 平滑滚动});});</script>
</body>
</html>

方法二:更流畅的动画效果

// 使用requestAnimationFrame实现更流畅的滚动
function scrollToTop(scrollDuration) {const scrollStep = -window.scrollY / (scrollDuration / 15);const scrollInterval = setInterval(function() {if (window.scrollY !== 0) {window.scrollBy(0, scrollStep);} else {clearInterval(scrollInterval);}}, 15);
}// 使用示例
document.getElementById('backToTop').addEventListener('click', function() {scrollToTop(500); // 500ms内滚动到顶部
});

方法三:同时支持底部和顶部

// 同时支持滚动到底部和回到顶部
function toggleScrollButtons() {const backToTopBtn = document.getElementById('backToTop');const scrollToBottomBtn = document.getElementById('scrollToBottom');if (window.pageYOffset > 300) {backToTopBtn.style.display = 'block';scrollToBottomBtn.style.display = 'none';} else if (window.innerHeight + window.pageYOffset >= document.body.offsetHeight - 100) {backToTopBtn.style.display = 'none';scrollToBottomBtn.style.display = 'block';} else {backToTopBtn.style.display = 'none';scrollToBottomBtn.style.display = 'none';}
}window.addEventListener('scroll', toggleScrollButtons);// 滚动到底部按钮
document.getElementById('scrollToBottom').addEventListener('click', function() {window.scrollTo({top: document.body.scrollHeight,behavior: 'smooth'});
});

方法四:使用CSS自定义属性控制

:root {--back-to-top-size: 50px;--back-to-top-color: #333;--back-to-top-hover-color: #555;
}#backToTop {position: fixed;bottom: 20px;right: 20px;display: none;width: var(--back-to-top-size);height: var(--back-to-top-size);background-color: var(--back-to-top-color);color: white;text-align: center;line-height: var(--back-to-top-size);border-radius: 50%;cursor: pointer;transition: background-color 0.3s;
}#backToTop:hover {background-color: var(--back-to-top-hover-color);
}

注意事项

按钮默认隐藏,滚动一定距离后显示
添加平滑滚动效果提升用户体验
考虑移动端触摸事件的兼容性
可以添加箭头图标或自定义样式
对于长页面,可以考虑添加滚动进度指示器
以上代码可以根据实际项目需求进行调整和组合使用。

相关文章:

  • 单例模式,饿汉式,懒汉式,在java和spring中的体现
  • Dify中的预定义模型插件开发例子:以siliconflow为例
  • PT_THREAD 的嵌套协程示例
  • Tomcat 使用与配置全解
  • EasyDarwin的配置与使用
  • 无限debugger
  • SDL2常用函数:SDL_RendererSDL_CreateRendererSDL_RenderCopySDL_RenderPresent
  • LVGL(lv_keyboard键盘)
  • Essential Studio for JavaScript:首款专用于LOB应用开发的JavaScript框架
  • node.js配置变量
  • x86 与 ARM 汇编深度对比:聚焦 x86 汇编的独特魅力
  • n8n 读写本地文件
  • 计算机网络学习20250526
  • 构建版本没mac上传APP方法
  • 电子电路:什么是电动势?
  • 数据库的索引概述与常见索引结构
  • 机器人工具中心点标定
  • UR10e 机器人如何通过扭矩控制接口实现高效装配
  • 【R语言科研绘图-最小二乘法】
  • 【后端高阶面经:MongoDB篇】40、怎么优化MongoDB的查询性能?
  • 手机网站模板 网址/如何快速推广自己的品牌
  • WordPress 网站小图标/国际新闻最新消息十条摘抄
  • 常州市建设局网站6/网络营销做得比较成功的案例
  • 网站不用了 怎么关闭吗/seo推广公司哪家好
  • 淘宝入驻网站建设/广告推广网站
  • 网站建设案例基本流程/注册城乡规划师报考条件