2017-09-28 1 views
13

Normale Chrome-Bildlaufleisten-Pfeilschaltflächen weisen einen deaktivierten ähnlichen Status auf, wenn der Bildlaufleisten-Daumen ganz auf den Pfeil zeigt.So geben Sie einen benutzerdefinierten CSS-Stil für den Zustand "disabled" beim Anpassen einer Webkit-Bildlaufleiste ein

Es gibt ::-webkit-scrollbar* Selektoren für Styling Scrollbars.

Welchen Selektor kann ich verwenden, um diesen bestimmten Zustand der Schaltfläche zu stylen? ::webkit-scrollbar-button:disabled funktioniert nicht für diesen Status.

Codepen: https://codepen.io/mattyork/pen/oGWOZY?editors=1100

image

+0

Der deaktivierte Status der Bildlaufleiste ist nur für Chrome verfügbar, daher handelt es sich wahrscheinlich um eine Browserseite. Ich glaube nicht, dass dies in html/css – toto1911

+0

@ toto1911 möglich ist, Sie sind richtig, aber die Stile anpassen können eine bessere Ansicht nur in Mac, nicht in Windows. –

Antwort

4

Wenn es nichts zu blättern ist, würde ich nur die Bildlaufleiste ganz verbergen.

body { 
     overflow: hidden; 
     height: 100vh; 
    } 
+3

Dies beantwortet die Frage des OP nicht. Er möchte das Scrollen nicht deaktivieren, was dies tun würde. Er möchte einfach einen "deaktivierten" Bildlaufleisten-Button stylen, wenn er zu einem oder dem anderen Ende gescrollt ist. –

+0

Ich antwortete darauf von einem Usability-POV und nicht von einem Implementierungs-POV. –

+0

ah, fair genug. Deine Antwort macht Sinn, aber ich dachte, er wollte die obere Taste stylen, wenn die Bildlaufleiste oben ist, und die untere, wenn die Leiste unten ist. –

1

ich nur dies zu tun, über JavaScript denken kann,

// Every time the window scrolls. 
addEventListener("scroll",() => { 
    // When scrollbar is at its zenith, do your CSS. 
    if (!document.querySelector("style[data-id=myStyle")) 
     head.innerHTML += `<style data-id=myStyle> ::-webkit-scrollbar { opacity: .5 } </style>`; 

    // When scrollbar is not at the top, remove the CSS. 
    else 
     (document.querySelector("style[data-id=myStyle") || document.createElement("style")).remove() 
}, false) 

Ich bin sicher, ob dies wirklich möglich in CSS, aber ich mag wirklich auf, dass falsch. Für jetzt, das ist alles was ich habe.

3

Antwort

Aus meiner Grundlagenforschung, ich bin nicht sicher, ob dies möglich ist. Basierend auf dieser Seite, die ich wette, dass Sie gesehen haben, listet es keine Pseudo Selektoren für aktive oder inaktive Scrollbar-Schaltflächen auf. Hier sind die aufgelisteten Selektoren.

:horizontal 
:vertical 
:decrement 
:increment 
:start 
:end 
:double-button 
:single-button 
:no-button 
:corner-present 
:window-inactive 

Stattdessen könnten Sie die Schaltflächen alle zusammen entfernen.

2

Sie können dies mit dem jquery-Plugin versuchen.

Hier habe ich angebracht, um die Github link.

Hier ist die Plugin webpage.

Sie auch die Beispiele für die Scrollbar von diesem link finden.


Eine andere Methode:

CSS Scrollbar Customization

* { 
 
     list-style:none; 
 
     margin:0; 
 
     padding:0; 
 
    } 
 
    body { 
 
     background: #333; 
 
     padding:20px; 
 
    } 
 
    #content { 
 
     background:transparent; 
 
     height:400px; 
 
     padding:0 10px 0 0; 
 
     width:400px; 
 
    } 
 
    #content li { 
 
     background:#666; 
 
     height:100px; 
 
     margin-bottom:10px; 
 
    } 
 
    #content li:last-child { margin-bottom: 0; } 
 

 
    .scrollable-content { 
 
     overflow-x:hidden; 
 
     overflow-y:scroll; 
 
    } 
 
    .scrollable-content::-webkit-scrollbar { 
 
     width:30px; 
 
    } 
 
    .scrollable-content::-webkit-scrollbar * { 
 
     background:transparent; 
 
    } 
 
    .scrollable-content::-webkit-scrollbar-thumb { 
 
     background:#999 !important; 
 
    }
<ol class="scrollable-content" id="content"> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
</ol>

Hoffnung kann dies Ihnen hilft.

+0

das ist großartig und erreicht, was gefragt wurde - aber ich denke, es muss das Standardverhalten der Bildlaufleiste sein? –

+0

Ja, dies ist ein Standardverhalten des Browsers, die reine CSS-Option funktioniert möglicherweise nicht in Windows, aber das Plugin, das ich erwähnt habe, hat volle Browser-Kompatibilität. –

+0

Ja, ich habe mir das Plugin angeschaut - die meisten Scrollbalken sahen wegen ihres seltsamen Stylings schwer zu benutzen aus. –

Verwandte Themen