Krycie pozwala uzyskać praktycznie dowolną liczbę miejsc dziesiętnych, ale problem polega na tym, że HTML może zmienić swoją lekkość tylko na 256 różnych sposobów. Tak więc najbardziej wrażliwe krycie byłoby w coś czarnego nad czymś białym, które miałoby widoczną różnorodność 256 różnych odcieni. Wynika to z tego, że stosunek między R, G i B musi być zawsze taki sam, aby zachować ten sam kolor.
Ponieważ najczulszy kolor ma 256 różnych wartości, najmniejszą zmianą, która wpłynęłaby na widoczny wynik byłaby 1/256 = 0.00390625
. Teoretycznie powinien to być minimalny rozmiar kroku dla zwiększenia nieprzezroczystości.
Testowałem to i używając prostego próbnika kolorów zauważyłem, że w this example fiddle dolny div był jedynym, który miał jakąkolwiek zmianę koloru. Górne 2 elementy div miały kolor #000000
, a dolny div miał kolor #010101
. Tak, chciałbym powiedzieć, opiera się na tym, że:
- Wprowadzone wartości nie są zaokrąglone, lub jeśli są, są one zawsze zaokrąglana w dół (floor function)
- Maksymalna czułość krycie jest 3 miejsc po przecinku.
Należy zauważyć, że wszystko zostało przetestowane w Google Chrome i podobnie jak BoltClock, może to się różnić w zależności od implementacji.
Mam przeczucie, że jest to zależne od wdrożenia. – BoltClock
Nie mam żadnych konkretnych dowodów, ale aby zachować dobrą zabawę IE zawsze myślałem o nieprzezroczystości w ułamkach dziesiętnych między 0 a 1, pozwalając na 11 możliwości, to niewiele, ale gwarantują 'zmianę' –
Po prostu próbowałem z [Math.random in Chrome] (http://jsfiddle.net/pXqdH/1/), a ustawienie i uzyskanie 16 miejsc po przecinku nie wydaje się być problemem, myślę, że pytanie jest bardziej praktyczne i co właściwie widzisz różnicę? – adeneo