改写自己的浏览器插件工具 myChromeTools

1. 起因, 目的:

前面我写过, 自己的一个浏览器插件小工具

  • 最近又增加一个小功能,可以自动滚动页面,尤其是对于那些瀑布流加载的网页。
  • 最新的代码都在这里

2. 先看效果

3. 过程:

代码 1, 模拟鼠标自然滚动
js 复制代码
// 处理滚动控制逻辑,响应 popup.js 发送的 startScroll 和 stopScroll 消息。


(function () {
    let scrollInterval = null;
  
    function smoothAutoScroll() {
      if (scrollInterval) {
        clearInterval(scrollInterval);
      }
      scrollInterval = setInterval(() => {
        const scrollHeight = document.documentElement.scrollHeight;
        const windowHeight = window.innerHeight;
        const currentScroll = window.scrollY;
        if (currentScroll + windowHeight >= scrollHeight - 1) {
          window.scrollTo({ top: 0, behavior: 'smooth' });
        } else {
          window.scrollBy({ top: 2, behavior: 'smooth' });
        }
      }, 16); // 每16毫秒滚动一次,约60fps
    }
  
    function stopScroll() {
      if (scrollInterval) {
        clearInterval(scrollInterval);
        scrollInterval = null;
      }
    }
  
    chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
      if (message.action === 'startScroll') {
        smoothAutoScroll();
      } else if (message.action === 'stopScroll') {
        stopScroll();
      }
    });
  })();

4. 结论 + todo

  • 可以试试看,默认人工滚动,即滚滚停停,假装是在阅读。

希望对大家有帮助。

相关推荐
lvchaoq30 分钟前
this指向面试代码输出题目合集
javascript·面试·职场和发展
你怎么知道我是队长1 小时前
JavaScript 函数 this 全解
开发语言·javascript·ecmascript
不简说3 小时前
JS 代码技巧 vol.5 — 10 个错误处理套路,从 try/catch 到 Error Boundary
前端·javascript·程序员
wordpress资料库3 小时前
Next.js更适合移动开发 不适合web开发
开发语言·前端·javascript·next.js
meilindehuzi_a5 小时前
Vue 项目中的前端 BFF:跨域代理与流式请求实战
前端·javascript·vue.js
To_OC6 小时前
LC 79 单词搜索:都说这是回溯入门题,我却连错三回
javascript·算法·leetcode
胡萝卜术6 小时前
从暴力到滑动窗口的终极形态:力扣3「无重复字符的最长子串」的优化进化之路
前端·javascript·面试
三84416 小时前
路由策略/控制 配置双点双向路由重发布
服务器·前端·javascript
柒和远方19 小时前
V043:BFF 层流式输出:从前端直连到生产级流式网关的架构演进
javascript·架构·node.js
用户9385156350720 小时前
SSE 流式输出的工程化拐点——为什么你需要一个 BFF 层
javascript·人工智能·全栈