您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
默认取第一个table of contents,请知晓。支持悬浮目录和悬浮Heading!
当前为
// ==UserScript== // @name Notion TOC Floating | 悬浮目录 | 悬浮Heading // @namespace https://github.com/gefangshuai/tampermokey-scripts // @version 0.1.3 // @description 默认取第一个table of contents,请知晓。支持悬浮目录和悬浮Heading! // @author Timothy.Ge // @include *://*.notion.so/* // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // @grant GM_addStyle // @note 21-06-02 0.1.3 新增了对h1、h2、h3的悬浮支持 // @note 21-05-25 0.1.2 更新说明 // @note 21-05-25 0.1.1 解决了更换文章失效的问题 // @note 21-05-25 0.1.0 第一个测试版本 // ==/UserScript== GM_addStyle ( ` div.notion-page-content .notion-header-block, div.notion-page-content .notion-sub_header-block { position: sticky !important; top: 0; background: #fff; } ` ); (function() { (function(history) { 'use strict'; // Your code here... var doSomething = function() { // float TOC var scroller = document.querySelector('div.notion-frame .notion-scroller'); var scrollWatchFun = function(e) { var tableContents = document.querySelector('.notion-table_of_contents-block'); if (tableContents) { var rect = tableContents.getBoundingClientRect(); var dom = tableContents.firstChild; if (dom) { if (rect.top <= 60) { dom.style.position = 'fixed'; dom.style.top = '60px'; } else { dom.style.position = null; dom.style.top = null; } } } }; if (scroller) { scroller.removeEventListener('scroll', scrollWatchFun); scroller.addEventListener('scroll', scrollWatchFun); } }; doSomething(); var pushState = history.pushState; history.pushState = function(state) { if (typeof history.onpushstate == 'function') { history.onpushstate({ state: state }); } setTimeout(function() { doSomething(); }, 1000); return pushState.apply(history, arguments); }; })(window.history); })();