有没有一种方法可以禁用自定义Webkit滚动条?


10

是否有扩展程序,自定义用户样式表等会禁用或还原基于Webkit的浏览器(例如Google Chrome)中滚动条的自定义?我喜欢纯朴的本机滚动条,但是似乎找不到CSS的组合来使它们一旦由CSS样式化后就回来。


在更高版本的chrome_child.dll中可以找到webkit-scrollbar出现的内容。

复制CSS中的本机滚动条,然后使用扩展名插入该样式表。
萨里姆2014年

Answers:


4

不幸的是,一旦激活CSS,就不能“禁用”或还原CSS:

::-webkit-scrollbar不能简单地重写以获取默认样式,唯一的方法是从代码中删除所有::-webkit-scrollbar规则。在这一点上,必须迫使可滚动区域重新绘制滚动条。为此,您可以快速添加和删除display:none;。从溢出或与溢出做相同的事情:在可滚动元素上。第一个问题是在每次加载页面时页面都会闪烁白色。第二个是资源密集型的,因为它必须检查页面上的任何元素是否溢出—不理想。

上面的链接来自脚本,该脚本将完全删除自定义栏,从而使您没有滚动栏。


如果它们仍然是可滚动区域,它是否不会渲染常规滚动条?嵌入式iframe具有滚动条,因此我认为对于其他溢出的对象也是如此。我的意思是,我希望带有#sidebar div的骨架网站类似。
Ehtesh Choudhury

2

在二进制干净的文本编辑器或十六进制编辑器中打开Web浏览器可执行文件,然后用“ webkit-scrollb4r”等其他垃圾替换所有出现的“ webkit-scrollbar”。我刚刚用Chrome尝试过,它可以解决问题。


2
修改已编译的可执行文件真的安全吗?下载Chromium源代码,对其进行修改并进行编译会更好吗?
Oriol 2014年

1
这将使chrome.exe构建的任何数字签名失效,因此-每次您尝试打开Chrome时都可能会收到可怕的警告。

-2
// ==UserScript==
// @name         My Fancy Scrollbar Userscript
// @namespace    http://your.homepage/
// @version      0.1
// @description  enter something useful
// @author       You
// @match        http://*/*
// @grant        none
// ==/UserScript==

[].forEach.call(document.styleSheets, function(sheet) {
    for (var i = 0; i < sheet.rules.length; ++i) {
        var rule = sheet.rules[i];
        if (/::-webkit-scrollbar/.test(rule.selectorText)) {
            sheet.deleteRule(i--);
        }
    }
});
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.