2017-09-28 81 views
13

Normalne przyciski przewijania z chromowaną klawiaturą mają stan wyłączony, gdy suwak paska przewijania jest przesunięty do końca.Sposób nadawania niestandardowego stylu CSS dla stanu "wyłączony" podczas dostosowywania przycisku paska przewijania na stronie internetowej

Dostępne są selektory ::-webkit-scrollbar* do stylizowania pasków przewijania.

Jakiego selektora można użyć do ułożenia tego konkretnego stanu przycisku? ::webkit-scrollbar-button:disabled nie działa w tym stanie.

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

image

+0

Wyłączony stan paska przewijania istnieje tylko w przeglądarce Chrome, więc prawdopodobnie jest to po stronie przeglądarki. Nie sądzę, że jest to możliwe w html/css – toto1911

+0

@ toto1911, masz rację, ale style dostosowywania mogą mieć lepszy widok tylko w mac, nie w oknach. –

Odpowiedz

4

Jeśli nie ma nic, aby przejść do, chciałbym po prostu ukryć pasek przewijania całkowicie.

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

To nie odpowiada na pytanie PO. Nie chce wyłączać przewijania, co by to zrobiło. Po prostu chce ustawić "wyłączony" przycisk paska przewijania, gdy jest przewinięty do końca lub do końca. –

+0

Odpowiedziałem na to z POV użyteczności, a nie z POV implementacji. –

+0

ah, wystarczy. Twoja odpowiedź ma sens, ale myślałem, że chce ustawić górny przycisk, gdy pasek przewijania znajduje się u góry, a dolny przycisk, gdy pasek jest na dole. –

1

mogę myśleć tylko o to zrobić za pośrednictwem JavaScript,

// 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) 

jestem pewien, czy to naprawdę możliwe w CSS, ale naprawdę chcę być źle w tej sprawie. Na razie to wszystko, co mam.

3

Odpowiedź

Z moich badań podstawowych, nie jestem pewien, że to jest możliwe. Na podstawie tej strony o nazwie css-tricks.com, na którą się założyłem, nie ma żadnych pseudo selektorów dla aktywnych lub nieaktywnych przycisków paska przewijania. Oto wymienione selektory.

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

Zamiast tego można rozważyć całkowite usunięcie przycisków.

2

Możesz spróbować tego, używając wtyczki jquery.

Tutaj mam załączeniu Github link.

Oto Plugin webpage.

Można również znaleźć przykłady dotyczące przewijania z tego link.


Inna metoda:

CSS przewijania Dostosowanie

* { 
 
     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>

Nadzieja to maja pomaga.

+0

to jest świetne i osiąga to, o co go proszono - ale myślę, że to musi być domyślne zachowanie paska przewijania? –

+0

Tak, jest to domyślne zachowanie przeglądarki, czysta opcja CSS może nie działać w systemie Windows, ale wtyczka, o której wspomniałem, ma pełną kompatybilność z różnymi przeglądarkami. –

+0

Tak, popatrzyłem na wtyczkę - większość pasków przewijania wyglądała na trudną w użyciu ze względu na ich dziwną stylistykę. –