2012-07-24 14 views
6

Używam wtyczki jQuery niceScroll, aby zastąpić zwykłe paski przewijania przeglądarki w przepełnieniu <div>'s. Wtyczka działa dobrze, ale nie mogę jej uruchomić i wyświetlać pasek przewijania zawsze (nawet jeśli zawartość nie przekracza granic <div>). Moja ostatnia konfiguracja jest:Zawsze wyświetlaj szynę niceScroll

$(document).ready(function() { 
    $(".div-wrapper").niceScroll({ 
     cursorcolor: "#333", 
     cursoropacitymin: 0.3, 
     background: "#bbb", 
     cursorborder: "0", 
     autohidemode: false, 
     cursorminheight: 30 
    }); 
}; 

próbowałem odpalić $(".div-wrapper").getNiceScroll().show() ale nie wydaje się do pracy albo.

Każda pomoc będzie mile widziane, dzięki

Odpowiedz

6

Po pierwsze, masz brakujący nawias na końcu - czy to może być twój problem?

Ustawienie autohidemodu na false oznacza, że ​​nie znika, gdy użytkownik przestaje przewijać, a następnie pojawia się ponownie podczas przewijania. Niestety nie oznacza to, że jest widoczny, jeśli zawartość nie przepełnia się.

Jako obejście można próbować dokonywania elementu z id = ascrail2000 wyraźnie widoczny po wywołaniu .niceScroll() z mniej więcej tak:

$(document).ready(function() { 
    $(".div-wrapper").niceScroll({ 
     cursorcolor: "#333", 
     cursoropacitymin: 0.3, 
     background: "#bbb", 
     cursorborder: "0", 
     autohidemode: false, 
     cursorminheight: 30 
    }); 
    $('#ascrail2000').show(); 
}); 

SEE brakującej PAREN w ostatnim wierszu

może być konieczne, aby jego dzieci elementy widoczne także:

$('#ascrail2000 *').show(); 

(Upewnij się, że element” s id jest ascrail2000 w danym przypadku)

UPDATE:. jako veritas wskazał, stosując bardziej ogólne selektor div[id^='ascrail'] zamiast #ascrail2000 sprawia, że ​​pracują dla więcej niż jednego nicescroll na jednej stronie, więc powyższe można zrobić z javascript:

$("div[id^='ascrail']").show(); 

lub w CSS:

div[id^='ascrail'] { display: block; } 

lub jeśli powyższe nie działa:

div[id^='ascrail'] { display: block !important; } 

To nie jest najbardziej eleganckie rozwiązanie, ale obawiam się, że jest to obecnie jedyny sposób na rozwiązanie tego problemu, ponieważ wtyczka nicescroll nie ma opcji wyboru tego zachowania. Na szczęście nicescroll jest open source i available on GitHub, więc można go łatwo rozwidlić i dodać taką opcję lub post a feature request na GitHub.

+0

Dzięki, ale byłam literówka w moim pytaniu:/Nie mogę ustawić na stałe wartości '#ascrail ...' w javascript (lub CSS), ponieważ mogę mieć 'n' zwoje na stronie. Ale '+ 1' za trud i częściowo dobrą odpowiedź. – veritas

+0

selektor CSS 'div [id^= 'ascrail'] {display: block; } 'jest rozwiązaniem CSS dla tego problemu, ale wolałbym coś innego. – veritas

+1

@veritas: Obawiam się, że obecnie nie ma lepszego rozwiązania, ale zawsze możesz opublikować prośbę o funkcję, aby było łatwiej - zobacz moją zaktualizowaną odpowiedź. – rsp

0

jestem przy założeniu, że jeśli zawartość nie przepełnić obwiedni, niceScroll nie coś, co może być problem zrobić. Należy pamiętać, że niceScroll nie jest> $ overflow: scroll; ... Bez przekopywania się przez samą wtyczkę nie mogę być pewny, ale zakładam, że ma wbudowane sprawdzanie, czy zawartość wymaga przewijania, i czy nie, po czym funkcja cicho wychodzi.

+0

Wtyczka tworzy w div element 'divs' i ustawia jego wartość na' display: none; ' więc to działa. – veritas

6
$(".div-wrapper").niceScroll({ 
    cursorcolor: "#333", 
    cursoropacitymin: 0.3, 
    background: "#bbb", 
    cursorborder: "0", 
    autohidemode: false, 
    cursorminheight: 30 
}); 
0

widzę tę odpowiedź za pomocą wyszukiwarki Google, nawet jeśli jest to stary, to jest mój roztwór roboczy, jeśli ktoś oczekuje szukając odpowiedzi:

 $('#ascrail2000.nicescroll-rails').show(); 
     $('#ascrail2000.nicescroll-rails div').height('300px').show(); 

muszę ustawić dowolną wysokość, do "bar" div, ponieważ domyślnie jest to wysokość: 0px, nawet jeśli ją wyświetlasz, nic nie widać. Przypuszczam, że możemy zrobić lepiej obliczyć dobrą wysokość z wymiarami okna, ale nie muszę :)

Powiązane problemy