2010-08-15 4 views
14

Wie kann ich Kanten von div mit jQuery verblassen? Stellen Sie sich ein Karussell mit Bildern vor, die horizontal gleiten. Wie kann ich die linke und rechte Seite ausblenden, so dass Bilder in der Nähe der Ränder allmählich verschwinden.Verblassen Kanten von div mit jQuery

Ich hoffe, es ist klar. :)

+3

Vielleicht sollten Sie etwas Code posten, damit Leute Vorschläge machen können, wie Sie diesen Effekt implementieren können? –

+0

Ich kann keine Entschuldigung finden, aber ich nehme an, dass es getan werden kann, indem man Elemente über den Schieberegler mit einem PNG setzt, das den Inhalt verblassen würde. –

Antwort

0

Eine einfache Möglichkeit, um eine Reihe von Divs über die Ränder wie vertikale Streifen mit verschiedenen Deckkraft Ebenen anzuzeigen, den Eindruck von Bildern ausgeblendet zu geben.

+0

Die Anzahl der Divs, die Sie benötigen, um diese Arbeit zu erledigen, würde (so denke ich) es unglaublich langsam machen. Wenn Sie eine feste Größe haben, ist es einfacher, ein einzelnes Maskierungsbild zu erstellen und es im "Folie" -Bereich zu überlagern. Abgesehen davon, dass Sie vielleicht CSS3 Gradienten verwenden können ... vorausgesetzt, sie unterstützen "transparent" an einem Endpunkt, aber ich weiß nicht, ob das der Fall ist, und offensichtlich würde es in IE nicht funktionieren :-( – prodigitalson

0

Wie Alex sagte, ist der einfachste Weg wahrscheinlich, etwas zu überlagern, um das darunterliegende Div auszublenden. Ich würde jedoch einfach einen png transparenten Farbverlauf verwenden. obwohl

Dies wird nicht leicht innerhalb IE6 arbeiten, aber es gibt immer einen Weg, (persönlich unterstütze ich nicht IE6 mehr):

http://24ways.org/2007/supersleight-transparent-png-in-ie6

19

Webkit-Browser (d.h. Chrome und Safari) unterstützen eine CSS-Eigenschaft namens -webkit-mask, mit der Sie ein Element mit einem CSS3-Effekt (d. H. Einem linearen Farbverlauf) überlagern können.

Die folgende Stylesheet-Regel wird ein Verblassen weißen Rand auf Elemente mit der Klasse gilt .mask:

.mask { 
    -webkit-mask: -webkit-linear-gradient(
      left, 
     rgba(255,255,255,0), 
     rgba(255,255,255,1) 5%, 
     rgba(255,255,255,1) 95%, 
     rgba(255,255,255,0) 
    ); 
} 

Leider ist dies wird nur Arbeit in Webkit-basierten Browsern. Wenn Sie alles andere unterstützen möchten (was Sie wahrscheinlich tun), verwenden Sie am besten transparente PNGs.

+1

Sie haben mich von Stunden gerettet nutzlose Codierung Ich liebe dich –

+2

Immer glücklich, um zu dienen :) Stimme es ab, wenn Sie die Antwort mögen! –

+0

Vielen Dank! Dies ist die einzige Möglichkeit, ein Ankerelement auszublenden, damit es klickbar bleibt. – Dmitry

4

Sie können versuchen, einen Schatten auf dem div, der die Bilder enthält, oder eine einzelne Pixel breite Box mit einem Anfangsschatten nach links oder rechts zu versuchen. Sie können eine Reihe von Schatten auf die CSS für diese äußeren Elemente anwenden, die von einem sehr transparenten, aber breiten Schatten bis zu einem ziemlich undurchsichtigen Schatten reichen. Sie können diese Schatten auch nur auf eine Seite eines Elements anwenden.

für Einschub: (Sie werden das Overlay größer als der Behälter für die Bilder machen müssen, aber die gleiche Breite und schweben sie overtop, wenn sie die gleiche Höhe ist der Schatten von allen Seiten angezeigt)

#container_overlay{ 
    box-shadow: inset 0px 0px 10px 10px white; 
    z-index:5;// higher than the container with the images 
} 

für ein Element an beiden Enden, verwenden Sie normalen Box Schatten.

#end_overlay{ 
    width:2px; 
    box-shadow: 0px 0px 10px 10px white; 
    z-index:5;// higher than the container with the images 
} 

Schwimmer, die nach links oder rechts, und es sollte auf jedem Browser arbeiten, die Overlay versteht und beliebig ohne Overlay wird es ignorieren. Ich glaube nicht, dass du etwas in diesen Dingen haben musst, also wäre es ein unsichtbares Objekt mit dem Schatten, der herausspringt.

Ich habe gesehen, dass dies verwendet, um den oberen und unteren Bereich von mehreren Magazin-Apps zu ändern, so dass der Text aussieht wie es verschwindet, wie es die Seite verlässt.