滚动到顶部或底部按钮

在网页添加一个“回到顶部”的按钮,可以快速回到页面顶部。

  1. // ==UserScript==
  2. // @name 滚动到顶部或底部按钮
  3. // @namespace http://tampermonkey.net/
  4. // @version 2.2.1
  5. // @description 在网页添加一个“回到顶部”的按钮,可以快速回到页面顶部。
  6. // @author www.techwb.cn
  7. // @match *://*/*
  8. // @grant none
  9. // @license MIT
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. // 创建按钮元素
  16. var scrollButton = document.createElement('button');
  17. scrollButton.textContent = '顶';
  18. scrollButton.id = 'scroll-top-button';
  19.  
  20. // 添加按钮样式
  21. scrollButton.style.background = 'red'; // 将背景颜色改为红色
  22. scrollButton.style.border = 'none'; // 去掉边框
  23. scrollButton.style.color = 'white'; // 文字颜色为白色
  24. scrollButton.style.padding = '10px 10px'; // 设定按钮的内边距
  25. scrollButton.style.textAlign = 'center'; // 文字居中
  26. scrollButton.style.textDecoration = 'none'; // 去掉下划线
  27. scrollButton.style.display = 'none'; // 默认不显示
  28. scrollButton.style.borderRadius = '10px'; // 设定圆角
  29. scrollButton.style.boxShadow = '2px 2px 3px rgba(0, 0, 0, 0.3)'; // 添加阴影效果
  30. scrollButton.style.cursor = 'pointer'; // 设定鼠标样式为手型
  31. scrollButton.style.position = 'fixed'; // 设定固定定位
  32. scrollButton.style.bottom = '20%'; // 设定距离底部的距离
  33. scrollButton.style.right = '20px'; // 设定距离右侧的距离
  34. scrollButton.style.zIndex = '9999'; // 设定 z-index
  35.  
  36. // 添加鼠标悬停效果
  37. scrollButton.addEventListener('mouseenter', function() {
  38. scrollButton.style.backgroundColor = '#ff6347'; // 鼠标悬停时的背景颜色
  39. });
  40.  
  41. scrollButton.addEventListener('mouseleave', function() {
  42. if (scrollButton.textContent === '顶') {
  43. scrollButton.style.backgroundColor = 'red'; // 鼠标离开时的背景颜色
  44. } else {
  45. scrollButton.style.backgroundColor = 'blue'; // 鼠标离开时的背景颜色
  46. }
  47. });
  48.  
  49. // 添加按钮到页面
  50. document.body.appendChild(scrollButton);
  51.  
  52. // 当用户滚动页面时,如果已经滚动了一定距离,就显示按钮
  53. var lastScrollPosition = window.pageYOffset; // 上一次滚动的位置
  54. var hideButtonTimeout;
  55.  
  56. window.addEventListener('scroll', function() {
  57. var currentScrollPosition = window.pageYOffset;
  58. if (currentScrollPosition > lastScrollPosition) { // 向下滚动
  59. scrollButton.textContent = '底';
  60. scrollButton.style.background = 'blue';
  61. } else { // 向上滚动
  62. scrollButton.textContent = '顶';
  63. scrollButton.style.background = 'red';
  64. }
  65. lastScrollPosition = currentScrollPosition;
  66. if (window.pageYOffset > 100) { // 滚动距离超过 100px 时
  67. scrollButton.style.display = 'block'; // 显示按钮
  68. } else {
  69. scrollButton.style.display = 'none'; // 否则隐藏按钮
  70. }
  71.  
  72. // 清除之前的计时器
  73. clearTimeout(hideButtonTimeout);
  74. // 设置新的计时器,在 3000 毫秒(3 秒)后隐藏按钮
  75. hideButtonTimeout = setTimeout(function() {
  76. scrollButton.style.display = 'none';
  77. }, 3000);
  78. });
  79.  
  80. // 点击按钮时,回到页面顶部或底部
  81. scrollButton.addEventListener('click', function() {
  82. if (scrollButton.textContent === '顶') {
  83. window.scrollTo(0, 0); // 将页面滚动到顶部
  84. } else {
  85. window.scrollTo(0, document.documentElement.scrollHeight - window.innerHeight); // 将页面滚动到底部
  86. }
  87. });
  88. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址