มีวิธีปิดการใช้งานแถบเลื่อน webkit ที่กำหนดเองหรือไม่?


10

มีส่วนขยายสไตล์ชีทผู้ใช้ที่กำหนดเอง ฯลฯ ที่จะปิดใช้งานหรือยกเลิกการปรับแต่งแถบเลื่อนในเบราว์เซอร์ที่ใช้ Webkit เช่น Google Chrome หรือไม่ ฉันชอบแถบเลื่อนธรรมดาที่เรียบง่าย แต่ฉันไม่สามารถหาชุดของ CSS ที่จะทำให้พวกเขากลับมาอีกครั้งเมื่อพวกเขาได้รับการออกแบบโดย CSS


การเกิดขึ้นของ webkit-scrollbar สามารถพบได้ใน chrome_child.dll ในรุ่นที่ใหม่กว่า

ทำซ้ำแถบเลื่อนดั้งเดิมใน css จากนั้นแทรกสไตล์ชีทนั้นโดยใช้ส่วนขยาย
Sarim

คำตอบ:


4

น่าเสียดายที่ CSS ไม่สามารถ "ปิดใช้งาน" หรือย้อนกลับเมื่อเปิดใช้งาน:

:: - webkit-scrollbar ไม่สามารถเขียนทับเพื่อรับสไตล์เริ่มต้นวิธีเดียวที่จะทำคือการลบทั้งหมด :: - กฎ webkit-scrollbar จากโค้ด ณ จุดนั้นพื้นที่ที่เลื่อนได้จะต้องถูกบังคับให้วาดแถบเลื่อนใหม่ ในการทำเช่นนั้นคุณสามารถเพิ่มและลบการแสดงผลได้อย่างรวดเร็ว: ไม่มี จากหรือทำสิ่งเดียวกันกับการล้น: ซ่อน; บนองค์ประกอบที่เลื่อนได้ ปัญหาแรกคือหน้านั้นกะพริบเป็นสีขาวในการโหลดหน้าทุกครั้ง ส่วนที่สองคือการใช้ทรัพยากรอย่างมากเนื่องจากจะต้องตรวจสอบองค์ประกอบใด ๆ ของหน้าล้นหรือไม่เหมาะ

ลิงค์ด้านบนนั้นมาจากสคริปต์ที่จะลบบาร์ที่กำหนดเองทั้งหมดทิ้งคุณโดยไม่มีแถบเลื่อน


หากพวกเขายังคงเป็นพื้นที่ที่เลื่อนได้มันจะไม่แสดงแถบเลื่อนปกติหรือไม่? iframes ในตัวรับแถบเลื่อนดังนั้นฉันจึงคิดได้ว่ามันจะเป็นจริงสำหรับสิ่งอื่น ๆ ที่ล้น ฉันหมายถึงฉันคาดหวังบางอย่างเช่นbackbonejs.orgด้วย #sidebar div
Ehtesh Choudhury

2

เปิดเว็บเบราว์เซอร์ของคุณในโปรแกรมแก้ไขข้อความไบนารีหรือตัวแก้ไขฐานสิบหกและแทนที่ "webkit-scrollbar" ที่เกิดขึ้นทั้งหมดด้วยขยะอื่น ๆ เช่น "webkit-scrollb4r" ฉันเพิ่งลองสิ่งนี้กับ Chrome แล้วมันแก้ปัญหาได้


2
การดัดแปลงไฟล์ที่ประมวลผลได้นั้นปลอดภัยจริงๆหรือไม่? จะเป็นการดีกว่าหรือถ้าจะดาวน์โหลดแหล่ง Chromium แก้ไขและคอมไพล์มัน?
Oriol

1
การทำเช่นนี้จะทำให้ลายเซ็นดิจิทัลของการสร้าง chrome.exe เป็นโมฆะดังนั้นคุณอาจได้รับคำเตือนที่น่ากลัวทุกครั้งที่คุณเปิด Chrome
Dai

-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--);
        }
    }
});
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.